home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / athena / zephyr / dist / patch2 < prev    next >
Encoding:
Text File  |  1989-10-26  |  74.0 KB  |  2,503 lines

  1. This is patch #2 to the Zephyr sources.  Besides this patch, you also
  2. want to pick up an updated version of makedepend (updated to the X11R3
  3. version, plus some additional CPP constants).  This makedepend is
  4. available in makedepend.tar.Z (or makedepend.shar, for mail retrieval).
  5. You should replace your existing src/makedepend directory with this
  6. version, then rebuild.
  7.  
  8. After applying the patch, rebuild all your clients; the library has an
  9. important bugfix which affects all clients.
  10.  
  11. BE SURE TO APPLY THIS PATCH WITH
  12.  
  13.    patch -p
  14.  
  15. TO PRESERVE THE DIRECTORY HIERARCHY.
  16.  
  17. CHANGES in this patch file:
  18.     - fixes so that the Imakefiles will work on NeXT machines (gcc's
  19.         version of cpp choked before)
  20.     - other NeXT fixes (strcasecmp in compile_et, config option to
  21.         ignore lint, some STDC fixes, missing extern declaration)
  22.     - Imake.rules fixes to insure cleanup before using et & ss build tools
  23.     - updated znol(1) program, new -u option, updated man page
  24.     - updated zwrite(1) program, new -l option, updated man page,
  25.         better -q semantics
  26.     - bugfixes to library for ZIfNotice (it would hang forever in
  27.          certain cases)
  28.     - fix bug in server/Imakefile (compiled version.c every time)
  29.     - server bug fixes (fix error reporting), add counters of
  30.         old-format requests
  31.     - more host types recognized in zhm
  32.     
  33. Prereq: 1
  34. diff -rc src/patchlevel.h /mit/zephyr/src/patchlevel.h
  35. *** patchlevel1/src/patchlevel.h    Fri Oct 27 11:21:14 1989
  36. --- src/patchlevel.h        Fri Oct 27 11:48:03 1989
  37. ***************
  38. *** 1 ****
  39. ! #define PATCHLEVEL 1
  40. --- 1 ----
  41. ! #define PATCHLEVEL 2
  42. diff -rc src/Imakefile /mit/zephyr/src/Imakefile
  43. *** patchlevel1/src/Imakefile    Tue May 30 23:20:36 1989
  44. --- src/Imakefile    Thu Oct 19 17:33:12 1989
  45. ***************
  46. *** 3,11 ****
  47.   /**/#    For copying and distribution information, see the file
  48.   /**/#    "mit-copyright.h". 
  49.   /**/#
  50. ! /**/#    $Source: /mit/zephyr/src/RCS/Imakefile,v $
  51.   /**/#    $Author: jtkohl $
  52. ! /**/#    $Header: Imakefile,v 1.7 89/05/30 23:20:29 jtkohl Exp $
  53.   /**/#
  54.   #define have_subdirs
  55.   #define no_curdir_lint
  56. --- 3,11 ----
  57.   /**/#    For copying and distribution information, see the file
  58.   /**/#    "mit-copyright.h". 
  59.   /**/#
  60. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/RCS/Imakefile,v $
  61.   /**/#    $Author: jtkohl $
  62. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/RCS/Imakefile,v 1.8 89/10/19 17:33:06 jtkohl Exp $
  63.   /**/#
  64.   #define have_subdirs
  65.   #define no_curdir_lint
  66. ***************
  67. *** 18,24 ****
  68.   SUBDIRS= ${LOC_SUBDIRS} include lib clients server zhm zwgc man
  69.   /* Need to make sure `all' is the first target */
  70.   all::
  71. ! /**/# we need to remove these here; it's not appropriate to remove them
  72.   /**/# from lib/Makefile since someone may type 'make clean' there and nuke
  73.   /**/# them by accident.
  74.   
  75. --- 18,24 ----
  76.   SUBDIRS= ${LOC_SUBDIRS} include lib clients server zhm zwgc man
  77.   /* Need to make sure `all' is the first target */
  78.   all::
  79. ! /**/# we need to remove these here; it is not appropriate to remove them
  80.   /**/# from lib/Makefile since someone may type 'make clean' there and nuke
  81.   /**/# them by accident.
  82.   
  83. diff -rc src/clients/zctl/Makefile /mit/zephyr/src/clients/zctl/Makefile
  84. *** patchlevel1/src/clients/zctl/Makefile    Fri Jul  7 17:38:00 1989
  85. --- src/clients/zctl/Makefile    Wed Oct 18 13:20:06 1989
  86. ***************
  87. *** 8,14 ****
  88.   # or you may lose your changes when imake generates makefiles again.
  89.   # Ignore this message if you are not using imake.
  90.   #
  91. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.template,v $
  92.   #    $Author: jtkohl $
  93.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  94.   #
  95. --- 8,14 ----
  96.   # or you may lose your changes when imake generates makefiles again.
  97.   # Ignore this message if you are not using imake.
  98.   #
  99. ! #    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.template,v $
  100.   #    $Author: jtkohl $
  101.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  102.   #
  103. ***************
  104. *** 25,36 ****
  105.   #    For copying and distribution information, see the file
  106.   #    "mit-copyright.h".
  107.   #
  108. ! #    $Source: /mit/zephyr/src/config/RCS/config.Imakefile,v $
  109.   #    $Author: jtkohl $
  110. ! #    $Header: config.Imakefile,v 1.13 89/05/30 23:29:32 jtkohl Exp $
  111.   #
  112.   
  113. ! SRCTOP=/mit/zephyr/src
  114.   
  115.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  116.   
  117. --- 25,36 ----
  118.   #    For copying and distribution information, see the file
  119.   #    "mit-copyright.h".
  120.   #
  121. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  122.   #    $Author: jtkohl $
  123. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.17 89/08/29 17:03:56 jtkohl Exp $
  124.   #
  125.   
  126. ! SRCTOP=/afs/athena.mit.edu/astaff/project/zephyr/src
  127.   
  128.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  129.   
  130. ***************
  131. *** 46,51 ****
  132. --- 46,53 ----
  133.   MANDIR=/usr/man
  134.   ACLDIR=/usr/athena/lib/zephyr
  135.   
  136. + LINTLIBFLAG=-C
  137.   X_CDEFS= -DX11
  138.   
  139.   X11_LIB=-lX11
  140. ***************
  141. *** 128,136 ****
  142.   #    For copying and distribution information, see the file
  143.   #    "mit-copyright.h".
  144.   #
  145. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.rules,v $
  146.   #    $Author: jtkohl $
  147. ! #    $Header: Imake.rules,v 1.14 89/05/31 11:30:00 jtkohl Exp $
  148.   #
  149.   
  150.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  151. --- 130,138 ----
  152.   #    For copying and distribution information, see the file
  153.   #    "mit-copyright.h".
  154.   #
  155. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v $
  156.   #    $Author: jtkohl $
  157. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v 1.17 89/07/25 13:39:18 jtkohl Exp Locker: jtkohl $
  158.   #
  159.   
  160.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  161. ***************
  162. *** 172,184 ****
  163.   clean::
  164.       $(RM) zctl ${OBJS}
  165.   
  166. ! zctl_cmds.o: zctl_cmds.ct
  167.       $(MAKE_COMMANDS) zctl_cmds.ct
  168.       $(CC) -c $(CFLAGS) zctl_cmds.c
  169.   
  170.   depend:: $(CODE)
  171.       @echo "### Now computing dependencies"
  172. !     @$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(SRCS)
  173.   
  174.   clean::
  175.       $(RM) *~ \#* *.bak $(TAGSFILE)
  176. --- 174,187 ----
  177.   clean::
  178.       $(RM) zctl ${OBJS}
  179.   
  180. ! zctl_cmds.o zctl_cmds.c: zctl_cmds.ct
  181. !     $(RM) zctl_cmds.c zctl_cmds.o
  182.       $(MAKE_COMMANDS) zctl_cmds.ct
  183.       $(CC) -c $(CFLAGS) zctl_cmds.c
  184.   
  185.   depend:: $(CODE)
  186.       @echo "### Now computing dependencies"
  187. !     @$(DEPEND) -s "# DO NOT DELETE" -- $(CFLAGS) -- $(SRCS)
  188.   
  189.   clean::
  190.       $(RM) *~ \#* *.bak $(TAGSFILE)
  191. diff -rc src/clients/znol/znol.c /mit/zephyr/src/clients/znol/znol.c
  192. *** patchlevel1/src/clients/znol/znol.c    Tue Jun 28 16:21:06 1988
  193. --- src/clients/znol/znol.c    Wed Oct 25 14:18:04 1989
  194. ***************
  195. *** 3,9 ****
  196.    *
  197.    *    Created by:    Robert French
  198.    *
  199. !  *    $Source: /mit/zephyr/src/clients/znol/RCS/znol.c,v $
  200.    *    $Author: jtkohl $
  201.    *
  202.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  203. --- 3,9 ----
  204.    *
  205.    *    Created by:    Robert French
  206.    *
  207. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/clients/znol/RCS/znol.c,v $
  208.    *    $Author: jtkohl $
  209.    *
  210.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  211. ***************
  212. *** 19,25 ****
  213.   #include <string.h>
  214.   
  215.   #ifndef lint
  216. ! static char rcsid_znol_c[] = "$Header: znol.c,v 1.5 88/06/28 16:20:56 jtkohl Exp $";
  217.   #endif lint
  218.   
  219.   #define SUBSATONCE 7
  220. --- 19,25 ----
  221.   #include <string.h>
  222.   
  223.   #ifndef lint
  224. ! static char rcsid_znol_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/clients/znol/RCS/znol.c,v 1.6 89/10/25 14:17:51 jtkohl Exp $";
  225.   #endif lint
  226.   
  227.   #define SUBSATONCE 7
  228. ***************
  229. *** 38,44 ****
  230.       FILE *fp;
  231.       struct passwd *pwd;
  232.       char anyonename[BUFSIZ],name[BUFSIZ],cleanname[BUFSIZ],*envptr;
  233. !     int onoff = ON,quiet = 0,justlist = 0;
  234.       int retval,arg,ind,one,numlocs,i;
  235.       short wgport;
  236.   
  237. --- 38,44 ----
  238.       FILE *fp;
  239.       struct passwd *pwd;
  240.       char anyonename[BUFSIZ],name[BUFSIZ],cleanname[BUFSIZ],*envptr;
  241. !     int onoff = ON,quiet = 0,justlist = 0,useronly = 0, filenamed = 0;
  242.       int retval,arg,ind,one,numlocs,i;
  243.       short wgport;
  244.   
  245. ***************
  246. *** 80,99 ****
  247.           if (!strcmp(argv[arg],"-f")) {
  248.               if (arg == argc-1) {
  249.                   fprintf(stderr,"No file name specified\n");
  250. !                 exit (1);
  251.               }
  252.               (void) strcpy(anyonename,argv[++arg]);
  253.               continue;
  254.           }
  255. !         printf("Usage: %s [on|off] [-q] [-l] [-f file]\n",argv[0]);
  256.           exit (1);
  257.       }
  258.   
  259.       if (quiet && justlist) {
  260.           fprintf(stderr,"-q and -l cannot both be used\n");
  261. !         exit (1);
  262.       } 
  263.       if (!justlist)
  264.           if ((wgport = ZGetWGPort()) == -1) {
  265.               com_err(argv[0],errno,"while getting WindowGram port");
  266. --- 80,113 ----
  267.           if (!strcmp(argv[arg],"-f")) {
  268.               if (arg == argc-1) {
  269.                   fprintf(stderr,"No file name specified\n");
  270. !                 goto usage;
  271.               }
  272.               (void) strcpy(anyonename,argv[++arg]);
  273. +             filenamed = 1;
  274.               continue;
  275.           }
  276. !         if (!strcmp(argv[arg],"-u")) {
  277. !             if (arg == argc-1) {
  278. !             fprintf(stderr,"No username specified\n");
  279. !             goto usage;
  280. !             }
  281. !             (void) strcpy(cleanname,argv[++arg]);
  282. !             useronly = 1;
  283. !             continue;
  284. !         }
  285. !         usage:
  286. !         fprintf(stderr,"Usage: %s [on|off] [-q | -l] [-f file | -u username]\n", argv[0]);
  287.           exit (1);
  288.       }
  289.   
  290.       if (quiet && justlist) {
  291.           fprintf(stderr,"-q and -l cannot both be used\n");
  292. !         goto usage;
  293.       } 
  294. !     if (useronly && filenamed) {
  295. !         fprintf(stderr,"-u and -f cannot both be used\n");
  296. !         goto usage;
  297. !     } 
  298.       if (!justlist)
  299.           if ((wgport = ZGetWGPort()) == -1) {
  300.               com_err(argv[0],errno,"while getting WindowGram port");
  301. ***************
  302. *** 100,106 ****
  303.               exit(1);
  304.           }
  305.       
  306. !     if (!(fp = fopen(anyonename,"r"))) {
  307.           fprintf(stderr,"Can't open %s for input\n",anyonename);
  308.           exit (1);
  309.       }
  310. --- 114,121 ----
  311.               exit(1);
  312.           }
  313.       
  314. !     if (!useronly && !(fp = fopen(anyonename,"r"))) {
  315.           fprintf(stderr,"Can't open %s for input\n",anyonename);
  316.           exit (1);
  317.       }
  318. ***************
  319. *** 108,123 ****
  320.       ind = 0;
  321.       
  322.       for (;;) {
  323. !         if (!fgets(cleanname,sizeof cleanname,fp))
  324.               break;
  325. !         if (cleanname[0] == '#') /* ignore comment lines */
  326.               continue;    
  327. !         /* Get rid of old-style nol entries, just in case */
  328. !         cleanname[strlen(cleanname)-1] = '\0';
  329. !         while (cleanname[strlen(cleanname)-1] == ' ')
  330.               cleanname[strlen(cleanname)-1] = '\0';
  331. !         if (*cleanname == '@' || !*cleanname)
  332.               continue;
  333.           subs[ind].class = LOGIN_CLASS;
  334.           (void) strcpy(name,cleanname);
  335.           if (!index(name,'@')) {
  336. --- 123,142 ----
  337.       ind = 0;
  338.       
  339.       for (;;) {
  340. !         if (!useronly) {
  341. !             if (!fgets(cleanname,sizeof cleanname,fp))
  342.               break;
  343. !             if (cleanname[0] == '#') /* ignore comment lines */
  344.               continue;    
  345. !             /* Get rid of old-style nol entries, just in case */
  346. !             cleanname[strlen(cleanname)-1] = '\0';
  347. !             while (cleanname[strlen(cleanname)-1] == ' ')
  348.               cleanname[strlen(cleanname)-1] = '\0';
  349. !             if (*cleanname == '@' || !*cleanname)
  350.               continue;
  351. +         } else if (ind)
  352. +             break;        /* only do the one name */
  353.           subs[ind].class = LOGIN_CLASS;
  354.           (void) strcpy(name,cleanname);
  355.           if (!index(name,'@')) {
  356. ***************
  357. *** 184,189 ****
  358.               exit(1);
  359.           } 
  360.   
  361. !     (void) fclose(fp);        /* file is open read-only,
  362.                          ignore errs */
  363.   }
  364. --- 203,210 ----
  365.               exit(1);
  366.           } 
  367.   
  368. !     if (!useronly)
  369. !         (void) fclose(fp);        /* file is open read-only,
  370.                          ignore errs */
  371. +     exit(0);
  372.   }
  373. diff -rc src/clients/zwrite/zwrite.c /mit/zephyr/src/clients/zwrite/zwrite.c
  374. *** patchlevel1/src/clients/zwrite/zwrite.c    Tue Apr 25 11:34:23 1989
  375. --- src/clients/zwrite/zwrite.c    Thu Oct 26 17:06:38 1989
  376. ***************
  377. *** 3,9 ****
  378.    *
  379.    *    Created by:    Robert French
  380.    *
  381. !  *    $Source: /mit/zephyr/src/clients/zwrite/RCS/zwrite.c,v $
  382.    *    $Author: jtkohl $
  383.    *
  384.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  385. --- 3,9 ----
  386.    *
  387.    *    Created by:    Robert French
  388.    *
  389. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/clients/zwrite/RCS/zwrite.c,v $
  390.    *    $Author: jtkohl $
  391.    *
  392.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  393. ***************
  394. *** 20,26 ****
  395.   #include <ctype.h>
  396.   
  397.   #ifndef lint
  398. ! static char rcsid_zwrite_c[] = "$Header: zwrite.c,v 1.28 89/04/25 11:33:49 jtkohl Exp $";
  399.   #endif lint
  400.   
  401.   #define DEFAULT_CLASS "MESSAGE"
  402. --- 20,26 ----
  403.   #include <ctype.h>
  404.   
  405.   #ifndef lint
  406. ! static char rcsid_zwrite_c[] = "$Id: zwrite.c,v 1.29 89/10/26 17:06:29 jtkohl Exp $";
  407.   #endif lint
  408.   
  409.   #define DEFAULT_CLASS "MESSAGE"
  410. ***************
  411. *** 30,36 ****
  412.   
  413.   #define MAXRECIPS 100
  414.   
  415. ! int nrecips, msgarg, verbose, quiet;
  416.   char *whoami, *inst, *class, *recips[MAXRECIPS];
  417.   int (*auth)();
  418.   void un_tabify();
  419. --- 30,36 ----
  420.   
  421.   #define MAXRECIPS 100
  422.   
  423. ! int nrecips, msgarg, verbose, quiet, nodot;
  424.   char *whoami, *inst, *class, *recips[MAXRECIPS];
  425.   int (*auth)();
  426.   void un_tabify();
  427. ***************
  428. *** 60,66 ****
  429.       bzero((char *) ¬ice, sizeof(notice));
  430.   
  431.       auth = ZAUTH;
  432. !     verbose = quiet = msgarg = nrecips = nocheck = filsys = 0;
  433.       tabexpand = 1;
  434.   
  435.       if (class = ZGetVariable("zwrite-class")) {
  436. --- 60,66 ----
  437.       bzero((char *) ¬ice, sizeof(notice));
  438.   
  439.       auth = ZAUTH;
  440. !     verbose = quiet = msgarg = nrecips = nocheck = filsys = nodot = 0;
  441.       tabexpand = 1;
  442.   
  443.       if (class = ZGetVariable("zwrite-class")) {
  444. ***************
  445. *** 148,153 ****
  446. --- 148,156 ----
  447.           usage(whoami);
  448.           msgarg = arg+1;
  449.           break;
  450. +     case 'l':            /* literal */
  451. +         nodot = 1;
  452. +         break;
  453.       default:
  454.           usage(whoami);
  455.       }
  456. ***************
  457. *** 209,217 ****
  458.       if (!nocheck && !msgarg && filsys != 1)
  459.       send_off(¬ice, 0);
  460.       
  461. !     if (!msgarg && isatty(0))
  462. !     printf("Type your message now.  End with control-D or a dot on a line by itself.\n");
  463.   
  464.       message = NULL;
  465.       msgsize = 0;
  466.       if (signature) {
  467. --- 212,226 ----
  468.       if (!nocheck && !msgarg && filsys != 1)
  469.       send_off(¬ice, 0);
  470.       
  471. !     if (quiet)
  472. !     notice.z_kind = UNACKED;    /* change for real sending */
  473.   
  474. +     if (!msgarg && isatty(0))
  475. +     if (nodot)
  476. +         printf("Type your message now.  End with the end-of-file character.\n");
  477. +     else
  478. +         printf("Type your message now.  End with control-D or a dot on a line by itself.\n");
  479. +     
  480.       message = NULL;
  481.       msgsize = 0;
  482.       if (signature) {
  483. ***************
  484. *** 247,253 ****
  485.           for (;;) {
  486.           if (!fgets(bfr, sizeof bfr, stdin))
  487.               break;
  488. !         if (bfr[0] == '.' &&
  489.               (bfr[1] == '\n' || bfr[1] == '\0'))
  490.               break;
  491.           message = realloc(message, (unsigned)(msgsize+strlen(bfr)));
  492. --- 256,262 ----
  493.           for (;;) {
  494.           if (!fgets(bfr, sizeof bfr, stdin))
  495.               break;
  496. !         if (!nodot && bfr[0] == '.' &&
  497.               (bfr[1] == '\n' || bfr[1] == '\0'))
  498.               break;
  499.           message = realloc(message, (unsigned)(msgsize+strlen(bfr)));
  500. ***************
  501. *** 306,311 ****
  502. --- 315,326 ----
  503.           com_err(whoami, retval, bfr);
  504.           break;
  505.       }
  506. +     if (quiet && real) {
  507. +         if (nrecips)
  508. +         continue;        /* next! */
  509. +         else
  510. +         break;            /* no more */
  511. +     }
  512.       if ((retval = ZIfNotice(&retnotice, (struct sockaddr_in *) 0,
  513.                   ZCompareUIDPred, 
  514.                   (char *)¬ice->z_uid)) !=
  515. ***************
  516. *** 376,382 ****
  517.   usage(s)
  518.       char *s;
  519.   {
  520. !     printf("Usage: %s [-a] [-o] [-d] [-v] [-q] [-n] [-t] [-u]\n\
  521.   \t[-c class] [-i inst] [-f fsname] [user ...] [-m message]\n", s);
  522.       printf("\t-f and -c are mutually exclusive\n\
  523.   \t-f and -i are mutually exclusive\n\
  524. --- 391,397 ----
  525.   usage(s)
  526.       char *s;
  527.   {
  528. !     printf("Usage: %s [-a] [-o] [-d] [-v] [-q] [-n] [-t] [-u] [-l]\n\
  529.   \t[-c class] [-i inst] [-f fsname] [user ...] [-m message]\n", s);
  530.       printf("\t-f and -c are mutually exclusive\n\
  531.   \t-f and -i are mutually exclusive\n\
  532. diff -rc src/config/Imake.rules /mit/zephyr/src/config/Imake.rules
  533. *** patchlevel1/src/config/Imake.rules    Fri Oct 27 11:21:16 1989
  534. --- src/config/Imake.rules    Thu Oct 19 17:59:20 1989
  535. ***************
  536. *** 3,11 ****
  537.   /**/#    For copying and distribution information, see the file
  538.   /**/#    "mit-copyright.h". 
  539.   /**/#
  540. ! /**/#    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.rules,v $
  541.   /**/#    $Author: jtkohl $
  542. ! /**/#    $Header: Imake.rules,v 1.17 89/07/25 13:39:18 jtkohl Exp $
  543.   /**/#
  544.   
  545.   #ifdef __STDC__
  546. --- 3,11 ----
  547.   /**/#    For copying and distribution information, see the file
  548.   /**/#    "mit-copyright.h". 
  549.   /**/#
  550. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v $
  551.   /**/#    $Author: jtkohl $
  552. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v 1.20 89/10/19 17:59:11 jtkohl Exp $
  553.   /**/#
  554.   
  555.   #ifdef __STDC__
  556. ***************
  557. *** 76,86 ****
  558.       -$(LD) -x -r -o $*.o a.out                    @@\
  559.       $(RM) a.out x.c
  560.   
  561.   #ifdef PROFILED_LIBS
  562.   #define    install_library_target(libname,objs,srcs,lintlibs)        @@\
  563.                                       @@\
  564.   all:: concat3(lib,libname,.a) concat3(lib,libname,_p.a)            @@\
  565. - all:: concat3(llib-l,libname,.ln)                    @@\
  566.                                       @@\
  567.   concat3(lib,libname,.a): objs                        @@\
  568.       $(RM) $@                             @@\
  569. --- 76,105 ----
  570.       -$(LD) -x -r -o $*.o a.out                    @@\
  571.       $(RM) a.out x.c
  572.   
  573. + #ifdef NO_LINT
  574. + #define lintlib_target(libname,srcs,lintlibs)
  575. + #define install_lintlib_target(libname)
  576. + #else /* have lint */
  577. + #define lintlib_target(libname,srcs,lintlibs)                @@\
  578. + all:: concat3(llib-l,libname,.ln)                    @@\
  579. +                                     @@\
  580. + lint:: concat3(llib-l,libname,.ln)                    @@\
  581. +                                     @@\
  582. + clean::                                    @@\
  583. +     $(RM) concat3(llib-l,libname,.ln)                @@\
  584. +                                     @@\
  585. + concat3(llib-l,libname,.ln):: srcs                    @@\
  586. +     $(LINT) concat($(LINTLIBFLAG),libname) $(LINTFLAGS) srcs lintlibs
  587. + #define install_lintlib_target(libname)                    @@\
  588. + install::                                @@\
  589. +     $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  590. + #endif /* NO_LINT */
  591.   #ifdef PROFILED_LIBS
  592.   #define    install_library_target(libname,objs,srcs,lintlibs)        @@\
  593.                                       @@\
  594.   all:: concat3(lib,libname,.a) concat3(lib,libname,_p.a)            @@\
  595.                                       @@\
  596.   concat3(lib,libname,.a): objs                        @@\
  597.       $(RM) $@                             @@\
  598. ***************
  599. *** 92,105 ****
  600.       (cd profiled; $(ARCHIVE) ../$@ objs)                @@\
  601.       $(RANLIB) $@                            @@\
  602.                                       @@\
  603. ! lint:: concat3(llib-l,libname,.ln)                    @@\
  604.                                       @@\
  605. - concat3(llib-l,libname,.ln):: srcs                    @@\
  606. -     $(LINT) concat($(LINTLIBFLAG),libname) $(LINTFLAGS) srcs lintlibs     @@\
  607. -                                     @@\
  608.   clean::                                 @@\
  609.       $(RM) concat3(lib,libname,.a) concat3(lib,libname,_p.a)        @@\
  610. -     $(RM) concat3(llib-l,libname,.ln)                @@\
  611.       $(RM) objs                            @@\
  612.       $(RM) profiled/?*.o                        @@\
  613.                                       @@\
  614. --- 111,120 ----
  615.       (cd profiled; $(ARCHIVE) ../$@ objs)                @@\
  616.       $(RANLIB) $@                            @@\
  617.                                       @@\
  618. ! lintlib_target(libname,srcs,lintlibs)                    @@\
  619.                                       @@\
  620.   clean::                                 @@\
  621.       $(RM) concat3(lib,libname,.a) concat3(lib,libname,_p.a)        @@\
  622.       $(RM) objs                            @@\
  623.       $(RM) profiled/?*.o                        @@\
  624.                                       @@\
  625. ***************
  626. *** 110,121 ****
  627.       $(INSTALLRAW) -c -m 644 concat3(lib,libname,_p.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  628.       $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  629.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  630. !     $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  631.   #else /* !PROFILED_LIBS */
  632.   #define    install_library_target(libname,objs,srcs,lintlibs)        @@\
  633.                                       @@\
  634.   all:: concat3(lib,libname,.a)                        @@\
  635. - all:: concat3(llib-l,libname,.ln)                    @@\
  636.                                       @@\
  637.   concat3(lib,libname,.a): objs                        @@\
  638.       $(RM) $@                             @@\
  639. --- 125,136 ----
  640.       $(INSTALLRAW) -c -m 644 concat3(lib,libname,_p.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  641.       $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  642.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  643. !                                     @@\
  644. ! install_lintlib_target(libname)
  645.   #else /* !PROFILED_LIBS */
  646.   #define    install_library_target(libname,objs,srcs,lintlibs)        @@\
  647.                                       @@\
  648.   all:: concat3(lib,libname,.a)                        @@\
  649.                                       @@\
  650.   concat3(lib,libname,.a): objs                        @@\
  651.       $(RM) $@                             @@\
  652. ***************
  653. *** 122,135 ****
  654.       $(ARCHIVE) $@ objs                        @@\
  655.       $(RANLIB) $@                            @@\
  656.                                       @@\
  657. ! lint:: concat3(llib-l,libname,.ln)                    @@\
  658.                                       @@\
  659. - concat3(llib-l,libname,.ln):: srcs                    @@\
  660. -     $(LINT) concat($(LINTLIBFLAG),libname) $(LINTFLAGS) srcs lintlibs     @@\
  661. -                                     @@\
  662.   clean::                                 @@\
  663.       $(RM) concat3(lib,libname,.a)                    @@\
  664. -     $(RM) concat3(llib-l,libname,.ln)                @@\
  665.       $(RM) objs                            @@\
  666.                                       @@\
  667.   install::                                 @@\
  668. --- 137,146 ----
  669.       $(ARCHIVE) $@ objs                        @@\
  670.       $(RANLIB) $@                            @@\
  671.                                       @@\
  672. ! lintlib_target(libname,srcs,lintlibs)                    @@\
  673.                                       @@\
  674.   clean::                                 @@\
  675.       $(RM) concat3(lib,libname,.a)                    @@\
  676.       $(RM) objs                            @@\
  677.                                       @@\
  678.   install::                                 @@\
  679. ***************
  680. *** 136,142 ****
  681.       $(INSTALLRAW) -c -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  682.       $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  683.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  684. !     $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  685.   #endif /* PROFILED_LIBS */
  686.   
  687.   /*
  688. --- 147,154 ----
  689.       $(INSTALLRAW) -c -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  690.       $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  691.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  692. !                                     @@\
  693. ! install_lintlib_target(libname)
  694.   #endif /* PROFILED_LIBS */
  695.   
  696.   /*
  697. ***************
  698. *** 263,271 ****
  699. --- 275,287 ----
  700.   tags::                                     @@\
  701.       $(TAGGER) *.c *.h
  702.   
  703. + #ifdef NO_LINT
  704. + #define lint_target()
  705. + #else /* have lint */
  706.   #define lint_target()                            @@\
  707.   lint::                                     @@\
  708.       $(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
  709. + #endif /* NO_LINT */
  710.   
  711.   #define makefile_target()                        @@\
  712.   Makefile::                                  @@\
  713. ***************
  714. *** 293,298 ****
  715. --- 309,315 ----
  716.        $(RM) $@                            @@\
  717.       -$(LN) ${SRCDIR}/$@ $@
  718.   
  719. + #ifdef NO_LINT
  720.   #define do_subdirs_no_imakefile(subdirs)                @@\
  721.       foreach_subdirs(all, subdirs)                    @@\
  722.       foreach_subdirs(install, subdirs)                @@\
  723. ***************
  724. *** 299,307 ****
  725.       foreach_subdirs(clean, subdirs)                    @@\
  726.       foreach_subdirs(depend, subdirs)                @@\
  727.       foreach_subdirs(tags, subdirs)                    @@\
  728.       foreach_subdirs(lint, subdirs)                    @@\
  729.       foreach_subdirs(print, subdirs)                    @@\
  730. !     foreach_subdirs(src, subdirs)                    @@\
  731.   
  732.   #define do_subdirs(subdirs)                        @@\
  733.       do_subdirs_no_imakefile(subdirs)                @@\
  734. --- 316,334 ----
  735.       foreach_subdirs(clean, subdirs)                    @@\
  736.       foreach_subdirs(depend, subdirs)                @@\
  737.       foreach_subdirs(tags, subdirs)                    @@\
  738. +     foreach_subdirs(print, subdirs)                    @@\
  739. +     foreach_subdirs(src, subdirs)
  740. + #else /* have lint */
  741. + #define do_subdirs_no_imakefile(subdirs)                @@\
  742. +     foreach_subdirs(all, subdirs)                    @@\
  743. +     foreach_subdirs(install, subdirs)                @@\
  744. +     foreach_subdirs(clean, subdirs)                    @@\
  745. +     foreach_subdirs(depend, subdirs)                @@\
  746. +     foreach_subdirs(tags, subdirs)                    @@\
  747.       foreach_subdirs(lint, subdirs)                    @@\
  748.       foreach_subdirs(print, subdirs)                    @@\
  749. !     foreach_subdirs(src, subdirs)
  750. ! #endif /* NO_LINT */
  751.   
  752.   #define do_subdirs(subdirs)                        @@\
  753.       do_subdirs_no_imakefile(subdirs)                @@\
  754. ***************
  755. *** 328,333 ****
  756. --- 355,361 ----
  757.   #ifdef PROFILED_LIBS
  758.   #define command_table(tbl)                        @@\
  759.   concat(tbl,.o): concat(tbl,.ct)                        @@\
  760. +     $(RM) concat(tbl,.c) concat(tbl,.o)                @@\
  761.       $(MAKE_COMMANDS) concat(tbl,.ct)                @@\
  762.       $(CC) -c PROF_FLAG $(CFLAGS) concat(tbl,.c)            @@\
  763.       $(MV) concat(tbl,.o) concat3(profiled/,tbl,.o)            @@\
  764. ***************
  765. *** 335,340 ****
  766. --- 363,369 ----
  767.   
  768.   #define make_error_table(tbl)                        @@\
  769.   concat(tbl,.h) concat(tbl,.o): concat(tbl,.et)                @@\
  770. +     $(RM) concat(tbl,.c) concat(tbl,.h)                @@\
  771.       $(COMPILE_ET) concat(tbl,.et)                    @@\
  772.       $(CC) -c PROF_FLAG $(CFLAGS) concat(tbl,.c)            @@\
  773.       $(MV) concat(tbl,.o) concat3(profiled/,tbl,.o)            @@\
  774. ***************
  775. *** 345,355 ****
  776. --- 374,386 ----
  777.   #else /* !PROFILED_LIBS */
  778.   #define command_table(tbl)                        @@\
  779.   concat(tbl,.o): concat(tbl,.ct)                        @@\
  780. +     $(RM) concat(tbl,.c) concat(tbl,.o)                @@\
  781.       $(MAKE_COMMANDS) concat(tbl,.ct)                @@\
  782.       $(CC) -c $(CFLAGS) concat(tbl,.c)
  783.   
  784.   #define make_error_table(tbl)                        @@\
  785.   concat(tbl,.h) concat(tbl,.o): concat(tbl,.et)                @@\
  786. +     $(RM) concat(tbl,.c) concat(tbl,.h)                @@\
  787.       $(COMPILE_ET) concat(tbl,.et)                    @@\
  788.       $(CC) -c $(CFLAGS) concat(tbl,.c)                @@\
  789.   clean::                                    @@\
  790. ***************
  791. *** 357,367 ****
  792.   #endif /* PROFILED_LIBS */
  793.   
  794.   #define command_table_noprof(tbl)                    @@\
  795. ! concat(tbl,.o): concat(tbl,.ct)                        @@\
  796.       $(MAKE_COMMANDS) concat(tbl,.ct)                @@\
  797.       $(CC) -c $(CFLAGS) concat(tbl,.c)
  798.   #define error_table_noprof(tbl)                        @@\
  799.   concat(tbl,.h) concat(tbl,.o): concat(tbl,.et)                @@\
  800.       $(COMPILE_ET) concat(tbl,.et)                    @@\
  801.       $(CC) -c $(CFLAGS) concat(tbl,.c)                @@\
  802.   clean::                                    @@\
  803. --- 388,400 ----
  804.   #endif /* PROFILED_LIBS */
  805.   
  806.   #define command_table_noprof(tbl)                    @@\
  807. ! concat(tbl,.o) concat(tbl,.c): concat(tbl,.ct)                @@\
  808. !     $(RM) concat(tbl,.c) concat(tbl,.o)                @@\
  809.       $(MAKE_COMMANDS) concat(tbl,.ct)                @@\
  810.       $(CC) -c $(CFLAGS) concat(tbl,.c)
  811.   #define error_table_noprof(tbl)                        @@\
  812.   concat(tbl,.h) concat(tbl,.o): concat(tbl,.et)                @@\
  813. +     $(RM) concat(tbl,.c) concat(tbl,.h)                @@\
  814.       $(COMPILE_ET) concat(tbl,.et)                    @@\
  815.       $(CC) -c $(CFLAGS) concat(tbl,.c)                @@\
  816.   clean::                                    @@\
  817. diff -rc src/config/Imake.template /mit/zephyr/src/config/Imake.template
  818. *** patchlevel1/src/config/Imake.template    Thu Mar 23 16:17:00 1989
  819. --- src/config/Imake.template    Tue Jul 25 13:38:32 1989
  820. ***************
  821. *** 7,13 ****
  822.   /**/# or you may lose your changes when imake generates makefiles again.
  823.   /**/# Ignore this message if you are not using imake.
  824.   /**/#
  825. ! /**/#    $Source: /mit/zephyr/src/config/RCS/Imake.template,v $
  826.   /**/#    $Author: jtkohl $
  827.   /**/#    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  828.   /**/#
  829. --- 7,13 ----
  830.   /**/# or you may lose your changes when imake generates makefiles again.
  831.   /**/# Ignore this message if you are not using imake.
  832.   /**/#
  833. ! /**/#    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.template,v $
  834.   /**/#    $Author: jtkohl $
  835.   /**/#    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  836.   /**/#
  837. diff -rc src/config/config.Imakefile /mit/zephyr/src/config/config.Imakefile
  838. *** patchlevel1/src/config/config.Imakefile    Fri Oct 27 11:21:16 1989
  839. --- src/config/config.Imakefile    Thu Oct 19 13:09:53 1989
  840. ***************
  841. *** 5,11 ****
  842.   /**/#
  843.   /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  844.   /**/#    $Author: jtkohl $
  845. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.17 89/08/29 17:03:56 jtkohl Exp $
  846.   /**/#
  847.   
  848.   /* 
  849. --- 5,11 ----
  850.   /**/#
  851.   /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  852.   /**/#    $Author: jtkohl $
  853. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.18 89/10/19 13:09:47 jtkohl Exp $
  854.   /**/#
  855.   
  856.   /* 
  857. ***************
  858. *** 121,126 ****
  859. --- 121,133 ----
  860.   ACLDIR=/usr/athena/lib/zephyr
  861.   
  862.   /*
  863. +  * If you do not have lint, or do not wish to make lint libraries for
  864. +  * the Zephyr library, define NO_LINT.
  865. +  */
  866. + /* #define NO_LINT */
  867. + /*
  868. +  * If you are using lint,
  869.    * LINTLIBFLAG should be the flag used to tell lint to create a lint
  870.    * library.  On most BSD systems, this is -C
  871.    */
  872. diff -rc src/et/compile_et/Imakefile /mit/zephyr/src/et/compile_et/Imakefile
  873. *** patchlevel1/src/et/compile_et/Imakefile    Tue May 30 18:12:35 1989
  874. --- src/et/compile_et/Imakefile    Thu Oct 19 09:15:38 1989
  875. ***************
  876. *** 3,11 ****
  877.   /**/#    For copying and distribution information, see the file
  878.   /**/#    "mit-copyright.h". 
  879.   /**/#
  880. ! /**/#    $Source: /mit/zephyr/src/et/compile_et/RCS/Imakefile,v $
  881.   /**/#    $Author: jtkohl $
  882. ! /**/#    $Header: Imakefile,v 1.3 89/05/30 18:12:28 jtkohl Exp $
  883.   /**/#
  884.   
  885.   LIBS= ../lib/libcom_err.a -ll
  886. --- 3,11 ----
  887.   /**/#    For copying and distribution information, see the file
  888.   /**/#    "mit-copyright.h". 
  889.   /**/#
  890. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/et/compile_et/RCS/Imakefile,v $
  891.   /**/#    $Author: jtkohl $
  892. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/et/compile_et/RCS/Imakefile,v 1.3 89/05/30 18:12:28 jtkohl Exp $
  893.   /**/#
  894.   
  895.   LIBS= ../lib/libcom_err.a -ll
  896. diff -rc src/et/compile_et/compile_et.c /mit/zephyr/src/et/compile_et/compile_et.c
  897. *** patchlevel1/src/et/compile_et/compile_et.c    Tue May 30 17:43:38 1989
  898. --- src/et/compile_et/compile_et.c    Thu Oct 19 09:23:11 1989
  899. ***************
  900. *** 5,10 ****
  901. --- 5,11 ----
  902.    *
  903.    * For copyright info, see "mit-sipb-copyright.h".
  904.    *
  905. +  * $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/et/compile_et/RCS/compile_et.c,v $
  906.    */
  907.   
  908.   #include <stdio.h>
  909. ***************
  910. *** 23,29 ****
  911.       "Copyright 1987,1988 by MIT Student Information Processing Board";
  912.   
  913.   static const char rcsid_compile_et_c[] =
  914. !     "$Header: compile_et.c,v 1.2 89/02/27 19:02:55 shanzer Exp $";
  915.   #endif
  916.   
  917.   extern char *gensym();
  918. --- 24,30 ----
  919.       "Copyright 1987,1988 by MIT Student Information Processing Board";
  920.   
  921.   static const char rcsid_compile_et_c[] =
  922. !     "$Id: compile_et.c,v 1.2 89/10/19 09:23:05 jtkohl Exp $";
  923.   #endif
  924.   
  925.   extern char *gensym();
  926. ***************
  927. *** 287,289 ****
  928. --- 288,377 ----
  929.       fprintf(stderr, "\nLine number %d; last token was '%s'\n",
  930.           yylineno, current_token);
  931.   }
  932. + #ifdef STRCASE
  933. + /*
  934. +  * Copyright (c) 1987 Regents of the University of California.
  935. +  * All rights reserved.
  936. +  *
  937. +  * Redistribution and use in source and binary forms are permitted
  938. +  * provided that this notice is preserved and that due credit is given
  939. +  * to the University of California at Berkeley. The name of the University
  940. +  * may not be used to endorse or promote products derived from this
  941. +  * software without specific written prior permission. This software
  942. +  * is provided ``as is'' without express or implied warranty.
  943. +  */
  944. + #if defined(LIBC_SCCS) && !defined(lint)
  945. + static char sccsid[] = "@(#)strcasecmp.c    5.5 (Berkeley) 11/24/87";
  946. + #endif /* LIBC_SCCS and not lint */
  947. + #include <sys/types.h>
  948. + /*
  949. +  * This array is designed for mapping upper and lower case letter
  950. +  * together for a case independent comparison.  The mappings are
  951. +  * based upon ascii character sequences.
  952. +  */
  953. + static u_char charmap[] = {
  954. +     '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
  955. +     '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
  956. +     '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
  957. +     '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
  958. +     '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
  959. +     '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
  960. +     '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
  961. +     '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
  962. +     '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
  963. +     '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
  964. +     '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
  965. +     '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
  966. +     '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
  967. +     '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
  968. +     '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
  969. +     '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
  970. +     '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
  971. +     '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
  972. +     '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
  973. +     '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
  974. +     '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
  975. +     '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
  976. +     '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
  977. +     '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
  978. +     '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
  979. +     '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
  980. +     '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
  981. +     '\370', '\371', '\372', '\333', '\334', '\335', '\336', '\337',
  982. +     '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
  983. +     '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
  984. +     '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
  985. +     '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
  986. + };
  987. + strcasecmp(s1, s2)
  988. +     char *s1, *s2;
  989. + {
  990. +     register u_char    *cm = charmap,
  991. +             *us1 = (u_char *)s1,
  992. +             *us2 = (u_char *)s2;
  993. +     while (cm[*us1] == cm[*us2++])
  994. +         if (*us1++ == '\0')
  995. +             return(0);
  996. +     return(cm[*us1] - cm[*--us2]);
  997. + }
  998. + strncasecmp(s1, s2, n)
  999. +     char *s1, *s2;
  1000. +     register int n;
  1001. + {
  1002. +     register u_char    *cm = charmap,
  1003. +             *us1 = (u_char *)s1,
  1004. +             *us2 = (u_char *)s2;
  1005. +     while (--n >= 0 && cm[*us1] == cm[*us2++])
  1006. +         if (*us1++ == '\0')
  1007. +             return(0);
  1008. +     return(n < 0 ? 0 : cm[*us1] - cm[*--us2]);
  1009. + }
  1010. + #endif /* STRCASE */
  1011. diff -rc src/et/compile_et/error_table.y /mit/zephyr/src/et/compile_et/error_table.y
  1012. *** patchlevel1/src/et/compile_et/error_table.y    Tue May 30 17:43:45 1989
  1013. --- src/et/compile_et/error_table.y    Thu Oct 19 17:57:51 1989
  1014. ***************
  1015. *** 1,6 ****
  1016.   %{
  1017.   #include <stdio.h>
  1018. ! char *str_concat(), *ds(), *quote(), *malloc(), *realloc();
  1019.   char *current_token = (char *)NULL;
  1020.   extern char *table_name;
  1021.   %}
  1022. --- 1,11 ----
  1023.   %{
  1024.   #include <stdio.h>
  1025. ! char *str_concat(), *ds(), *quote();
  1026. ! #ifdef __STDC__
  1027. ! #include <stdlib.h>
  1028. ! #else
  1029. ! char *malloc(), *realloc();
  1030. ! #endif
  1031.   char *current_token = (char *)NULL;
  1032.   extern char *table_name;
  1033.   %}
  1034. ***************
  1035. *** 73,82 ****
  1036.   
  1037.   #ifndef    lint
  1038.   static char const rcsid_error_table_y[] =
  1039. !     "$Header: error_table.y,v 1.7 89/01/01 07:23:17 raeburn Locked $";
  1040.   #endif
  1041.   
  1042. - char *malloc(), *realloc();
  1043.   extern FILE *hfile, *cfile;
  1044.   
  1045.   static long gensym_n = 0;
  1046. --- 78,86 ----
  1047.   
  1048.   #ifndef    lint
  1049.   static char const rcsid_error_table_y[] =
  1050. !     "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/et/compile_et/RCS/error_table.y,v 1.2 89/10/19 17:57:47 jtkohl Exp $";
  1051.   #endif
  1052.   
  1053.   extern FILE *hfile, *cfile;
  1054.   
  1055.   static long gensym_n = 0;
  1056. diff -rc src/et/lib/internal.h /mit/zephyr/src/et/lib/internal.h
  1057. *** patchlevel1/src/et/lib/internal.h    Tue May 30 17:48:33 1989
  1058. --- src/et/lib/internal.h    Thu Oct 19 18:03:08 1989
  1059. ***************
  1060. *** 12,18 ****
  1061.   extern const int sys_nerr;
  1062.   
  1063.   #ifdef __STDC__
  1064. ! int perror (const char *);
  1065.   #else
  1066.   int perror ();
  1067.   #endif
  1068. --- 12,18 ----
  1069.   extern const int sys_nerr;
  1070.   
  1071.   #ifdef __STDC__
  1072. ! void perror (const char *);
  1073.   #else
  1074.   int perror ();
  1075.   #endif
  1076. diff -rc src/lib/Imakefile /mit/zephyr/src/lib/Imakefile
  1077. *** patchlevel1/src/lib/Imakefile    Fri Oct 27 11:21:17 1989
  1078. --- src/lib/Imakefile    Thu Oct 19 17:37:22 1989
  1079. ***************
  1080. *** 3,11 ****
  1081.   /**/#    For copying and distribution information, see the file
  1082.   /**/#    "mit-copyright.h". 
  1083.   /**/#
  1084. ! /**/#    $Source: /afs/athena.mit.edu/mit/zephyr/src/lib/RCS/Imakefile,v $
  1085.   /**/#    $Author: jtkohl $
  1086. ! /**/#    $Header: Imakefile,v 1.7 89/07/25 13:40:27 jtkohl Exp $
  1087.   /**/#
  1088.   #define no_curdir_lint
  1089.   
  1090. --- 3,11 ----
  1091.   /**/#    For copying and distribution information, see the file
  1092.   /**/#    "mit-copyright.h". 
  1093.   /**/#
  1094. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/Imakefile,v $
  1095.   /**/#    $Author: jtkohl $
  1096. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/Imakefile,v 1.8 89/10/19 17:37:16 jtkohl Exp $
  1097.   /**/#
  1098.   #define no_curdir_lint
  1099.   
  1100. ***************
  1101. *** 239,246 ****
  1102.   #endif /* KERBEROS */
  1103.       install -c -m 0644 ../include/zephyr/mit-copyright.h ${DESTDIR}/usr/include/zephyr/mit-copyright.h
  1104.   
  1105.   #define last_licks()                            @@\
  1106. - /**/# this is to install the lint lib  This must end            @@\
  1107. - /**/# up in the resulting Makefile AFTER the other lint lib stuff.    @@\
  1108.   llib-lzephyr.ln::                            @@\
  1109.       cp llib-lzephyr.ln ../libs/llib-lzephyr.ln
  1110. --- 239,246 ----
  1111.   #endif /* KERBEROS */
  1112.       install -c -m 0644 ../include/zephyr/mit-copyright.h ${DESTDIR}/usr/include/zephyr/mit-copyright.h
  1113.   
  1114. + /* this is to install the lint lib  This must end */
  1115. + /* up in the resulting Makefile AFTER the other lint lib stuff. */
  1116.   #define last_licks()                            @@\
  1117.   llib-lzephyr.ln::                            @@\
  1118.       cp llib-lzephyr.ln ../libs/llib-lzephyr.ln
  1119. diff -rc src/lib/Makefile /mit/zephyr/src/lib/Makefile
  1120. *** patchlevel1/src/lib/Makefile    Fri Jul  7 17:36:51 1989
  1121. --- src/lib/Makefile    Wed Oct 18 13:20:54 1989
  1122. ***************
  1123. *** 8,14 ****
  1124.   # or you may lose your changes when imake generates makefiles again.
  1125.   # Ignore this message if you are not using imake.
  1126.   #
  1127. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.template,v $
  1128.   #    $Author: jtkohl $
  1129.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  1130.   #
  1131. --- 8,14 ----
  1132.   # or you may lose your changes when imake generates makefiles again.
  1133.   # Ignore this message if you are not using imake.
  1134.   #
  1135. ! #    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.template,v $
  1136.   #    $Author: jtkohl $
  1137.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  1138.   #
  1139. ***************
  1140. *** 25,36 ****
  1141.   #    For copying and distribution information, see the file
  1142.   #    "mit-copyright.h".
  1143.   #
  1144. ! #    $Source: /mit/zephyr/src/config/RCS/config.Imakefile,v $
  1145.   #    $Author: jtkohl $
  1146. ! #    $Header: config.Imakefile,v 1.13 89/05/30 23:29:32 jtkohl Exp $
  1147.   #
  1148.   
  1149. ! SRCTOP=/mit/zephyr/src
  1150.   
  1151.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  1152.   
  1153. --- 25,36 ----
  1154.   #    For copying and distribution information, see the file
  1155.   #    "mit-copyright.h".
  1156.   #
  1157. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  1158.   #    $Author: jtkohl $
  1159. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.17 89/08/29 17:03:56 jtkohl Exp $
  1160.   #
  1161.   
  1162. ! SRCTOP=/afs/athena.mit.edu/astaff/project/zephyr/src
  1163.   
  1164.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  1165.   
  1166. ***************
  1167. *** 46,51 ****
  1168. --- 46,53 ----
  1169.   MANDIR=/usr/man
  1170.   ACLDIR=/usr/athena/lib/zephyr
  1171.   
  1172. + LINTLIBFLAG=-C
  1173.   X_CDEFS= -DX11
  1174.   
  1175.   X11_LIB=-lX11
  1176. ***************
  1177. *** 128,136 ****
  1178.   #    For copying and distribution information, see the file
  1179.   #    "mit-copyright.h".
  1180.   #
  1181. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.rules,v $
  1182.   #    $Author: jtkohl $
  1183. ! #    $Header: Imake.rules,v 1.14 89/05/31 11:30:00 jtkohl Exp $
  1184.   #
  1185.   
  1186.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  1187. --- 130,138 ----
  1188.   #    For copying and distribution information, see the file
  1189.   #    "mit-copyright.h".
  1190.   #
  1191. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v $
  1192.   #    $Author: jtkohl $
  1193. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v 1.17 89/07/25 13:39:18 jtkohl Exp Locker: jtkohl $
  1194.   #
  1195.   
  1196.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  1197. ***************
  1198. *** 141,149 ****
  1199.   #    For copying and distribution information, see the file
  1200.   #    "mit-copyright.h".
  1201.   #
  1202. ! #    $Source: /mit/zephyr/src/lib/RCS/Imakefile,v $
  1203.   #    $Author: jtkohl $
  1204. ! #    $Header: Imakefile,v 1.5 89/05/31 10:17:40 jtkohl Exp $
  1205.   #
  1206.   
  1207.   LINTLIBS= ${KRB_LINTLIB} ${DES_LINTLIB} ${COMERR_LINTLIB}
  1208. --- 143,151 ----
  1209.   #    For copying and distribution information, see the file
  1210.   #    "mit-copyright.h".
  1211.   #
  1212. ! #    $Source: /afs/athena.mit.edu/mit/zephyr/src/lib/RCS/Imakefile,v $
  1213.   #    $Author: jtkohl $
  1214. ! #    $Header: Imakefile,v 1.7 89/07/25 13:40:27 jtkohl Exp $
  1215.   #
  1216.   
  1217.   LINTLIBS= ${KRB_LINTLIB} ${DES_LINTLIB} ${COMERR_LINTLIB}
  1218. ***************
  1219. *** 202,208 ****
  1220.       ZSubscriptions.c \
  1221.       ZVariables.c \
  1222.       Zinternal.c \
  1223. !     acl_files.c
  1224.   
  1225.   OLIST=    \
  1226.       krb_err.o \
  1227. --- 204,211 ----
  1228.       ZSubscriptions.c \
  1229.       ZVariables.c \
  1230.       Zinternal.c \
  1231. !     acl_files.c \
  1232. !     strcasecmp.c
  1233.   
  1234.   OLIST=    \
  1235.       krb_err.o \
  1236. ***************
  1237. *** 293,299 ****
  1238.   lint:: llib-lzephyr.ln
  1239.   
  1240.   llib-lzephyr.ln:: ${SRCS}
  1241. !     $(LINT) -Czephyr $(LINTFLAGS) ${SRCS} ${LINTLIBS}
  1242.   
  1243.   clean::
  1244.       $(RM) libzephyr.a libzephyr_p.a
  1245. --- 296,302 ----
  1246.   lint:: llib-lzephyr.ln
  1247.   
  1248.   llib-lzephyr.ln:: ${SRCS}
  1249. !     $(LINT) $(LINTLIBFLAG)zephyr $(LINTFLAGS) ${SRCS} ${LINTLIBS}
  1250.   
  1251.   clean::
  1252.       $(RM) libzephyr.a libzephyr_p.a
  1253. ***************
  1254. *** 302,316 ****
  1255.       $(RM) profiled/?*.o
  1256.   
  1257.   install::
  1258. !     $(INSTALLRAW) -m 644 libzephyr.a $(DESTDIR)$(LIBDIR)/libzephyr.a
  1259. !     $(RANLIB) -t $(DESTDIR)$(LIBDIR)/libzephyr.a
  1260.       $(CHMOD) 444 $(DESTDIR)$(LIBDIR)/libzephyr.a
  1261. !     $(INSTALLRAW) -m 644 libzephyr_p.a $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1262. !     $(RANLIB) -t $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1263.       $(CHMOD) 444 $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1264.       $(INSTALLFILE) llib-lzephyr.ln $(DESTDIR)$(LINTLIBDIR)/llib-lzephyr.ln
  1265.   
  1266.   zephyr_err.h zephyr_err.o: zephyr_err.et
  1267.       $(COMPILE_ET) zephyr_err.et
  1268.       $(CC) -c -pg $(CFLAGS) zephyr_err.c
  1269.       $(MV) zephyr_err.o profiled/zephyr_err.o
  1270. --- 305,320 ----
  1271.       $(RM) profiled/?*.o
  1272.   
  1273.   install::
  1274. !     $(INSTALLRAW) -c -m 644 libzephyr.a $(DESTDIR)$(LIBDIR)/libzephyr.a
  1275. !     $(RANLIB) $(DESTDIR)$(LIBDIR)/libzephyr.a
  1276.       $(CHMOD) 444 $(DESTDIR)$(LIBDIR)/libzephyr.a
  1277. !     $(INSTALLRAW) -c -m 644 libzephyr_p.a $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1278. !     $(RANLIB) $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1279.       $(CHMOD) 444 $(DESTDIR)$(LIBDIR)/libzephyr_p.a
  1280.       $(INSTALLFILE) llib-lzephyr.ln $(DESTDIR)$(LINTLIBDIR)/llib-lzephyr.ln
  1281.   
  1282.   zephyr_err.h zephyr_err.o: zephyr_err.et
  1283. +     $(RM) zephyr_err.c zephyr_err.h
  1284.       $(COMPILE_ET) zephyr_err.et
  1285.       $(CC) -c -pg $(CFLAGS) zephyr_err.c
  1286.       $(MV) zephyr_err.o profiled/zephyr_err.o
  1287. ***************
  1288. *** 319,324 ****
  1289. --- 323,329 ----
  1290.       $(RM) zephyr_err.o zephyr_err.h
  1291.   
  1292.   krb_err.h krb_err.o: krb_err.et
  1293. +     $(RM) krb_err.c krb_err.h
  1294.       $(COMPILE_ET) krb_err.et
  1295.       $(CC) -c -pg $(CFLAGS) krb_err.c
  1296.       $(MV) krb_err.o profiled/krb_err.o
  1297. ***************
  1298. *** 329,338 ****
  1299.   all::
  1300.       $(RM) ../libs/libzephyr.a ../libs/libzephyr_p.a
  1301.       $(CP) libzephyr.a ../libs/libzephyr.a
  1302. !     $(RANLIB) -t ../libs/libzephyr.a
  1303.   
  1304.       $(CP) libzephyr_p.a ../libs/libzephyr_p.a
  1305. !     $(RANLIB) -t ../libs/libzephyr_p.a
  1306.   
  1307.   depend:: krb_err.h
  1308.       -if cmp krb_err.h ../include/zephyr/krb_err.h >/dev/null 2>&1; then \
  1309. --- 334,343 ----
  1310.   all::
  1311.       $(RM) ../libs/libzephyr.a ../libs/libzephyr_p.a
  1312.       $(CP) libzephyr.a ../libs/libzephyr.a
  1313. !     $(RANLIB) ../libs/libzephyr.a
  1314.   
  1315.       $(CP) libzephyr_p.a ../libs/libzephyr_p.a
  1316. !     $(RANLIB) ../libs/libzephyr_p.a
  1317.   
  1318.   depend:: krb_err.h
  1319.       -if cmp krb_err.h ../include/zephyr/krb_err.h >/dev/null 2>&1; then \
  1320. ***************
  1321. *** 363,369 ****
  1322.   
  1323.   depend:: $(CODE)
  1324.       @echo "### Now computing dependencies"
  1325. !     @$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(SRCS)
  1326.   
  1327.   clean::
  1328.       $(RM) *~ \#* *.bak $(TAGSFILE)
  1329. --- 368,374 ----
  1330.   
  1331.   depend:: $(CODE)
  1332.       @echo "### Now computing dependencies"
  1333. !     @$(DEPEND) -s "# DO NOT DELETE" -- $(CFLAGS) -- $(SRCS)
  1334.   
  1335.   clean::
  1336.       $(RM) *~ \#* *.bak $(TAGSFILE)
  1337. diff -rc src/lib/ZIfNotice.c /mit/zephyr/src/lib/ZIfNotice.c
  1338. *** patchlevel1/src/lib/ZIfNotice.c    Wed Jul 20 15:31:47 1988
  1339. --- src/lib/ZIfNotice.c    Thu Oct 26 11:26:16 1989
  1340. ***************
  1341. *** 3,9 ****
  1342.    *
  1343.    *    Created by:    Robert French
  1344.    *
  1345. !  *    $Source: /mit/zephyr/src/lib/RCS/ZIfNotice.c,v $
  1346.    *    $Author: jtkohl $
  1347.    *
  1348.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1349. --- 3,9 ----
  1350.    *
  1351.    *    Created by:    Robert French
  1352.    *
  1353. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/ZIfNotice.c,v $
  1354.    *    $Author: jtkohl $
  1355.    *
  1356.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1357. ***************
  1358. *** 10,19 ****
  1359.    *    For copying and distribution information, see the file
  1360.    *    "mit-copyright.h". 
  1361.    */
  1362. ! /* $Header: ZIfNotice.c,v 1.9 88/06/29 16:40:56 jtkohl Exp $ */
  1363.   
  1364.   #ifndef lint
  1365. ! static char rcsid_ZIfNotice_c[] = "$Header: ZIfNotice.c,v 1.9 88/06/29 16:40:56 jtkohl Exp $";
  1366.   #endif lint
  1367.   
  1368.   #include <zephyr/mit-copyright.h>
  1369. --- 10,19 ----
  1370.    *    For copying and distribution information, see the file
  1371.    *    "mit-copyright.h". 
  1372.    */
  1373. ! /* $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/ZIfNotice.c,v 1.10 89/10/26 11:25:39 jtkohl Exp $ */
  1374.   
  1375.   #ifndef lint
  1376. ! static char rcsid_ZIfNotice_c[] = "$Id: ZIfNotice.c,v 1.10 89/10/26 11:25:39 jtkohl Exp $";
  1377.   #endif lint
  1378.   
  1379.   #include <zephyr/mit-copyright.h>
  1380. ***************
  1381. *** 59,63 ****
  1382. --- 59,66 ----
  1383.       }
  1384.       if ((retval = Z_ReadWait()) != ZERR_NONE)
  1385.           return (retval);
  1386. +     qptr = Z_GetFirstComplete();    /* need to look over all of
  1387. +                        the queued messages, in case
  1388. +                        a fragment has been reassembled */
  1389.       }
  1390.   }
  1391. diff -rc src/lib/Zinternal.c /mit/zephyr/src/lib/Zinternal.c
  1392. *** patchlevel1/src/lib/Zinternal.c    Thu Dec 15 12:28:49 1988
  1393. --- src/lib/Zinternal.c    Thu Oct 26 15:48:21 1989
  1394. ***************
  1395. *** 3,9 ****
  1396.    *
  1397.    *    Created by:    Robert French
  1398.    *
  1399. !  *    $Source: /mit/zephyr/src/lib/RCS/Zinternal.c,v $
  1400.    *    $Author: jtkohl $
  1401.    *
  1402.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1403. --- 3,9 ----
  1404.    *
  1405.    *    Created by:    Robert French
  1406.    *
  1407. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/Zinternal.c,v $
  1408.    *    $Author: jtkohl $
  1409.    *
  1410.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1411. ***************
  1412. *** 10,19 ****
  1413.    *    For copying and distribution information, see the file
  1414.    *    "mit-copyright.h". 
  1415.    */
  1416. ! /* $Header: Zinternal.c,v 1.18 88/11/14 11:30:20 jtkohl Exp $ */
  1417.   
  1418.   #ifndef lint
  1419. ! static char rcsid_Zinternal_c[] = "$Header: Zinternal.c,v 1.18 88/11/14 11:30:20 jtkohl Exp $";
  1420.   static char copyright[] = "Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.";
  1421.   #endif lint
  1422.   
  1423. --- 10,19 ----
  1424.    *    For copying and distribution information, see the file
  1425.    *    "mit-copyright.h". 
  1426.    */
  1427. ! /* $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/Zinternal.c,v 1.19 89/10/26 15:46:00 jtkohl Exp $ */
  1428.   
  1429.   #ifndef lint
  1430. ! static char rcsid_Zinternal_c[] = "$Id: Zinternal.c,v 1.19 89/10/26 15:46:00 jtkohl Exp $";
  1431.   static char copyright[] = "Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.";
  1432.   #endif lint
  1433.   
  1434. ***************
  1435. *** 261,266 ****
  1436. --- 261,287 ----
  1437.        * with the same multiuid field, insert the current fragment as
  1438.        * appropriate.
  1439.        */
  1440. +     switch (notice.z_kind) {
  1441. +     case SERVACK:
  1442. +     case SERVNAK:
  1443. +     /* The SERVACK and SERVNAK replies shouldn't be reassembled
  1444. +        (they have no parts).  Instead, we should hold on to the reply
  1445. +        ONLY if it's the first part of a fragmented message, i.e.
  1446. +        multi_uid == uid.  This allows programs to wait for the uid
  1447. +        of the first packet, and get a response when that notice
  1448. +        arrives.  Acknowledgements of the other fragments are discarded
  1449. +        (XXX we assume here that they all carry the same information
  1450. +        regarding failure/success)
  1451. +      */
  1452. +     if (!__Zephyr_server &&
  1453. +         !ZCompareUID(¬ice.z_multiuid, ¬ice.z_uid))
  1454. +         /* they're not the same... throw away this packet. */
  1455. +         return(ZERR_NONE);
  1456. +     /* fall thru & process it */
  1457. +     default:
  1458. +     /* for HMACK types, we assume no packet loss (local loopback
  1459. +        connections).  The other types can be fragmented and MUST
  1460. +        run through this code. */
  1461.       if (!__Zephyr_server && (qptr = Z_SearchQueue(¬ice.z_multiuid,
  1462.                             notice.z_kind))) {
  1463.       /*
  1464. ***************
  1465. *** 274,279 ****
  1466. --- 295,301 ----
  1467.           bcopy(packet, qptr->header, qptr->header_len);
  1468.       }
  1469.       return (Z_AddNoticeToEntry(qptr, ¬ice, part));
  1470. +     }
  1471.       }
  1472.   
  1473.       /*
  1474. diff -rc src/man/man1/znol.1 /mit/zephyr/src/man/man1/znol.1
  1475. *** patchlevel1/src/man/man1/znol.1    Fri Sep 23 16:36:17 1988
  1476. --- src/man/man1/znol.1    Wed Oct 25 14:23:12 1989
  1477. ***************
  1478. *** 1,6 ****
  1479. ! .\"    $Source: /mit/zephyr/src/man/man1/RCS/znol.1,v $
  1480.   .\"    $Author: jtkohl $
  1481. ! .\"    $Header: znol.1,v 1.5 88/09/23 16:36:12 jtkohl Exp $
  1482.   .\"
  1483.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1484.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1485. --- 1,6 ----
  1486. ! .\"    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/man/man1/RCS/znol.1,v $
  1487.   .\"    $Author: jtkohl $
  1488. ! .\"    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/man/man1/RCS/znol.1,v 1.6 89/10/25 14:23:06 jtkohl Exp $
  1489.   .\"
  1490.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1491.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1492. ***************
  1493. *** 17,27 ****
  1494.   [
  1495.   .BI on|off
  1496.   ] [
  1497. ! .BI -f \ file
  1498.   ] [
  1499. ! .BI -l
  1500.   ] [
  1501. ! .BI -q
  1502.   ]
  1503.   .SH DESCRIPTION
  1504.   .I Znol
  1505. --- 17,29 ----
  1506.   [
  1507.   .BI on|off
  1508.   ] [
  1509. ! .BI \-f \ file
  1510.   ] [
  1511. ! .BI \-u \ username
  1512.   ] [
  1513. ! .BI \-l
  1514. ! ] [
  1515. ! .BI \-q
  1516.   ]
  1517.   .SH DESCRIPTION
  1518.   .I Znol
  1519. ***************
  1520. *** 48,67 ****
  1521.   does not exist, an error message is printed, and
  1522.   .I znol
  1523.   exits.
  1524.   .TP
  1525.   .B \-l
  1526.   Causes
  1527.   .I znol
  1528.   to just list the people in the namelist who are currently logged in,
  1529. ! without subscribing to the login messages.  Cannot be used with the
  1530.   .BI \-q
  1531.   option.
  1532.   .TP
  1533.   .B \-q
  1534. ! Disables printing who is currently logged in when subscribing.  Cannot
  1535. ! be used with the
  1536.   .BI \-l
  1537.   option.
  1538.   .SH FILES
  1539.   $HOME/.anyone
  1540.   .SH SEE ALSO
  1541. --- 50,95 ----
  1542.   does not exist, an error message is printed, and
  1543.   .I znol
  1544.   exits.
  1545. + This option may not be used in conjunction with the
  1546. + .B \-u
  1547. + option.
  1548.   .TP
  1549.   .B \-l
  1550.   Causes
  1551.   .I znol
  1552.   to just list the people in the namelist who are currently logged in,
  1553. ! without subscribing to the login messages.   This option may not be used
  1554. ! in conjunction with the
  1555.   .BI \-q
  1556.   option.
  1557.   .TP
  1558.   .B \-q
  1559. ! Disables printing who is currently logged in when subscribing.  This
  1560. ! option may not be used in conjunction with the
  1561.   .BI \-l
  1562.   option.
  1563. + .TP
  1564. + .B \-u
  1565. + Instead of reading a file to specify the "interesting" users, the next
  1566. + argument is used as the only "interesting" user.  This option may not be
  1567. + used in conjunction with the
  1568. + .B \-f
  1569. + option.
  1570. + .SH EXAMPLES
  1571. + .nf
  1572. + .in +.5in
  1573. + znol
  1574. + .in -.5in
  1575. + .fi
  1576. + reads the standard namelist file, prints the locations of any users
  1577. + named therein which can be found on the system, and enters subscriptions
  1578. + for notices about those users.
  1579. + .nf
  1580. + .in +.5in
  1581. + znol -l -u foo
  1582. + .in -.5in
  1583. + .fi
  1584. + prints the location (if visible) of the user 'foo'.
  1585.   .SH FILES
  1586.   $HOME/.anyone
  1587.   .SH SEE ALSO
  1588. diff -rc src/man/man1/zwrite.1 /mit/zephyr/src/man/man1/zwrite.1
  1589. *** patchlevel1/src/man/man1/zwrite.1    Wed Jul  5 16:06:38 1989
  1590. --- src/man/man1/zwrite.1    Thu Oct 26 17:04:01 1989
  1591. ***************
  1592. *** 1,6 ****
  1593. ! .\"    $Source: /mit/zephyr/src/man/man1/RCS/zwrite.1,v $
  1594.   .\"    $Author: jtkohl $
  1595. ! .\"    $Header: zwrite.1,v 1.14 89/07/05 16:06:30 jtkohl Exp $
  1596.   .\"
  1597.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1598.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1599. --- 1,6 ----
  1600. ! .\"    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/man/man1/RCS/zwrite.1,v $
  1601.   .\"    $Author: jtkohl $
  1602. ! .\"    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/man/man1/RCS/zwrite.1,v 1.15 89/10/26 17:03:52 jtkohl Exp $
  1603.   .\"
  1604.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1605.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1606. ***************
  1607. *** 7,13 ****
  1608.   .\" specifies the terms and conditions for redistribution.
  1609.   .\"
  1610.   .\"
  1611. ! .TH ZWRITE 1 "November 22, 1988" "MIT Project Athena"
  1612.   .ds ]W MIT Project Athena
  1613.   .SH NAME
  1614.   zwrite \- write to another user via Zephyr
  1615. --- 7,13 ----
  1616.   .\" specifies the terms and conditions for redistribution.
  1617.   .\"
  1618.   .\"
  1619. ! .TH ZWRITE 1 "October 26, 1989" "MIT Project Athena"
  1620.   .ds ]W MIT Project Athena
  1621.   .SH NAME
  1622.   zwrite \- write to another user via Zephyr
  1623. ***************
  1624. *** 30,35 ****
  1625. --- 30,37 ----
  1626.   ] [
  1627.   .BI -n
  1628.   ] [
  1629. + .BI -l
  1630. + ] [
  1631.   .BI -s
  1632.   signature ] [
  1633.   .BI -c
  1634. ***************
  1635. *** 85,90 ****
  1636. --- 87,99 ----
  1637.   .I zwrite
  1638.   will expand any tabs it finds into the appropriate number of spaces to
  1639.   maintain separation based on 8-character tab stops.
  1640. + .TP
  1641. + .B \-l
  1642. + Causes
  1643. + .I zwrite
  1644. + to ignore `.' on a line by itself in the input and only end a typed
  1645. + message when the user types the end-of-file character (usually
  1646. + control-D).  When the input is not a terminal, this is the default action.
  1647.   .TP
  1648.   .B \-u
  1649.   Sends an urgent message.  This changes the
  1650. diff -rc src/server/Imakefile /mit/zephyr/src/server/Imakefile
  1651. *** patchlevel1/src/server/Imakefile    Fri Oct 27 11:21:21 1989
  1652. --- src/server/Imakefile    Thu Oct 26 14:21:15 1989
  1653. ***************
  1654. *** 5,11 ****
  1655.   /**/#
  1656.   /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v $
  1657.   /**/#    $Author: jtkohl $
  1658. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v 1.6 89/09/18 14:24:28 jtkohl Exp $
  1659.   /**/#
  1660.   
  1661.   #if defined(DO_SYSLOG) && defined(SYSLOG_COMPAT42)
  1662. --- 5,11 ----
  1663.   /**/#
  1664.   /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v $
  1665.   /**/#    $Author: jtkohl $
  1666. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v 1.8 89/10/18 13:10:47 jtkohl Exp $
  1667.   /**/#
  1668.   
  1669.   #if defined(DO_SYSLOG) && defined(SYSLOG_COMPAT42)
  1670. ***************
  1671. *** 51,57 ****
  1672.       timer.o \
  1673.       uloc.o \
  1674.       kstuff.o \
  1675. !     version.c
  1676.   
  1677.   OTHERSRCS= zsrv_err.et
  1678.   CONFIG_FILES= default.subscriptions
  1679. --- 51,57 ----
  1680.       timer.o \
  1681.       uloc.o \
  1682.       kstuff.o \
  1683. !     version.o
  1684.   
  1685.   OTHERSRCS= zsrv_err.et
  1686.   CONFIG_FILES= default.subscriptions
  1687. ***************
  1688. *** 67,72 ****
  1689. --- 67,73 ----
  1690.   
  1691.   src:: zsrv_err.h
  1692.   
  1693. + depend:: zsrv_err.h
  1694.   
  1695.   install::
  1696.       -mkdir ${DESTDIR}${ACLDIR}
  1697. diff -rc src/server/Makefile /mit/zephyr/src/server/Makefile
  1698. *** patchlevel1/src/server/Makefile    Fri Jul  7 17:41:30 1989
  1699. --- src/server/Makefile    Wed Oct 18 13:20:36 1989
  1700. ***************
  1701. *** 8,14 ****
  1702.   # or you may lose your changes when imake generates makefiles again.
  1703.   # Ignore this message if you are not using imake.
  1704.   #
  1705. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.template,v $
  1706.   #    $Author: jtkohl $
  1707.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  1708.   #
  1709. --- 8,14 ----
  1710.   # or you may lose your changes when imake generates makefiles again.
  1711.   # Ignore this message if you are not using imake.
  1712.   #
  1713. ! #    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.template,v $
  1714.   #    $Author: jtkohl $
  1715.   #    $Header: Imake.template,v 1.2 89/03/23 16:16:50 jtkohl Exp $
  1716.   #
  1717. ***************
  1718. *** 25,36 ****
  1719.   #    For copying and distribution information, see the file
  1720.   #    "mit-copyright.h".
  1721.   #
  1722. ! #    $Source: /mit/zephyr/src/config/RCS/config.Imakefile,v $
  1723.   #    $Author: jtkohl $
  1724. ! #    $Header: config.Imakefile,v 1.13 89/05/30 23:29:32 jtkohl Exp $
  1725.   #
  1726.   
  1727. ! SRCTOP=/mit/zephyr/src
  1728.   
  1729.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  1730.   
  1731. --- 25,36 ----
  1732.   #    For copying and distribution information, see the file
  1733.   #    "mit-copyright.h".
  1734.   #
  1735. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  1736.   #    $Author: jtkohl $
  1737. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.17 89/08/29 17:03:56 jtkohl Exp $
  1738.   #
  1739.   
  1740. ! SRCTOP=/afs/athena.mit.edu/astaff/project/zephyr/src
  1741.   
  1742.   IMAKE=$(BUILDTOP)/imake/imake -I$(BUILDTOP)/config
  1743.   
  1744. ***************
  1745. *** 46,51 ****
  1746. --- 46,53 ----
  1747.   MANDIR=/usr/man
  1748.   ACLDIR=/usr/athena/lib/zephyr
  1749.   
  1750. + LINTLIBFLAG=-C
  1751.   X_CDEFS= -DX11
  1752.   
  1753.   X11_LIB=-lX11
  1754. ***************
  1755. *** 128,136 ****
  1756.   #    For copying and distribution information, see the file
  1757.   #    "mit-copyright.h".
  1758.   #
  1759. ! #    $Source: /mit/zephyr/src/config/RCS/Imake.rules,v $
  1760.   #    $Author: jtkohl $
  1761. ! #    $Header: Imake.rules,v 1.14 89/05/31 11:30:00 jtkohl Exp $
  1762.   #
  1763.   
  1764.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  1765. --- 130,138 ----
  1766.   #    For copying and distribution information, see the file
  1767.   #    "mit-copyright.h".
  1768.   #
  1769. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v $
  1770.   #    $Author: jtkohl $
  1771. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/Imake.rules,v 1.17 89/07/25 13:39:18 jtkohl Exp Locker: jtkohl $
  1772.   #
  1773.   
  1774.   ZEPHYR_LIB=$(BUILDTOP)/libs/libzephyr.a
  1775. ***************
  1776. *** 141,149 ****
  1777.   #    For copying and distribution information, see the file
  1778.   #    "mit-copyright.h".
  1779.   #
  1780. ! #    $Source: /mit/zephyr/src/server/RCS/Imakefile,v $
  1781.   #    $Author: jtkohl $
  1782. ! #    $Header: Imakefile,v 1.5 89/04/04 11:22:55 jtkohl Exp $
  1783.   #
  1784.   
  1785.   SYSLOG_LIB=
  1786. --- 143,151 ----
  1787.   #    For copying and distribution information, see the file
  1788.   #    "mit-copyright.h".
  1789.   #
  1790. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v $
  1791.   #    $Author: jtkohl $
  1792. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v 1.8 89/10/18 13:10:47 jtkohl Exp $
  1793.   #
  1794.   
  1795.   SYSLOG_LIB=
  1796. ***************
  1797. *** 169,175 ****
  1798.       subscr.c \
  1799.       timer.c \
  1800.       uloc.c \
  1801. !     kstuff.c
  1802.   
  1803.   OBJS=     zsrv_err.o \
  1804.       access.o \
  1805. --- 171,178 ----
  1806.       subscr.c \
  1807.       timer.c \
  1808.       uloc.c \
  1809. !     kstuff.c \
  1810. !     version.c
  1811.   
  1812.   OBJS=     zsrv_err.o \
  1813.       access.o \
  1814. ***************
  1815. *** 184,190 ****
  1816.       subscr.o \
  1817.       timer.o \
  1818.       uloc.o \
  1819. !     kstuff.o
  1820.   
  1821.   OTHERSRCS= zsrv_err.et
  1822.   CONFIG_FILES= default.subscriptions
  1823. --- 187,194 ----
  1824.       subscr.o \
  1825.       timer.o \
  1826.       uloc.o \
  1827. !     kstuff.o \
  1828. !     version.o
  1829.   
  1830.   OTHERSRCS= zsrv_err.et
  1831.   CONFIG_FILES= default.subscriptions
  1832. ***************
  1833. *** 210,215 ****
  1834. --- 214,220 ----
  1835.       $(RM) zephyrd ${OBJS}
  1836.   
  1837.   zsrv_err.h zsrv_err.o: zsrv_err.et
  1838. +     $(RM) zsrv_err.c zsrv_err.h
  1839.       $(COMPILE_ET) zsrv_err.et
  1840.       $(CC) -c $(CFLAGS) zsrv_err.c
  1841.   clean::
  1842. ***************
  1843. *** 217,222 ****
  1844. --- 222,229 ----
  1845.   
  1846.   src:: zsrv_err.h
  1847.   
  1848. + depend:: zsrv_err.h
  1849.   install::
  1850.       -mkdir ${DESTDIR}${ACLDIR}
  1851.       -rm -f ${DESTDIR}${ACLDIR}/?*
  1852. ***************
  1853. *** 225,231 ****
  1854.   
  1855.   depend:: $(CODE)
  1856.       @echo "### Now computing dependencies"
  1857. !     @$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(SRCS)
  1858.   
  1859.   clean::
  1860.       $(RM) *~ \#* *.bak $(TAGSFILE)
  1861. --- 232,238 ----
  1862.   
  1863.   depend:: $(CODE)
  1864.       @echo "### Now computing dependencies"
  1865. !     @$(DEPEND) -s "# DO NOT DELETE" -- $(CFLAGS) -- $(SRCS)
  1866.   
  1867.   clean::
  1868.       $(RM) *~ \#* *.bak $(TAGSFILE)
  1869. diff -rc src/server/main.c /mit/zephyr/src/server/main.c
  1870. *** patchlevel1/src/server/main.c    Fri Oct 27 11:21:22 1989
  1871. --- src/server/main.c    Mon Oct 23 08:14:30 1989
  1872. ***************
  1873. *** 15,21 ****
  1874.   
  1875.   #ifndef lint
  1876.   #ifndef SABER
  1877. ! static char rcsid_main_c[] = "$Id: main.c,v 1.38 89/09/18 14:23:31 jtkohl Exp $";
  1878.   #endif SABER
  1879.   #endif lint
  1880.   
  1881. --- 15,21 ----
  1882.   
  1883.   #ifndef lint
  1884.   #ifndef SABER
  1885. ! static char rcsid_main_c[] = "$Id: main.c,v 1.39 89/10/23 08:14:19 jtkohl Exp $";
  1886.   #endif SABER
  1887.   #endif lint
  1888.   
  1889. ***************
  1890. *** 339,345 ****
  1891.       sock_sin.sin_port = sp->s_port;
  1892.       
  1893.       if (!(sp = getservbyname(HM_SVCNAME, "udp"))) {
  1894. !         syslog(LOG_ERR, "%s/udp unknown", SERVER_SVCNAME);
  1895.           return(1);
  1896.       }
  1897.       hm_port = sp->s_port;
  1898. --- 339,345 ----
  1899.       sock_sin.sin_port = sp->s_port;
  1900.       
  1901.       if (!(sp = getservbyname(HM_SVCNAME, "udp"))) {
  1902. !         syslog(LOG_ERR, "%s/udp unknown", HM_SVCNAME);
  1903.           return(1);
  1904.       }
  1905.       hm_port = sp->s_port;
  1906. diff -rc src/server/server.c /mit/zephyr/src/server/server.c
  1907. *** patchlevel1/src/server/server.c    Fri Oct 27 11:21:24 1989
  1908. --- src/server/server.c    Fri Oct 27 11:33:49 1989
  1909. ***************
  1910. *** 15,21 ****
  1911.   
  1912.   #ifndef lint
  1913.   #ifndef SABER
  1914. ! static char rcsid_server_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/server.c,v 1.39 89/10/17 16:05:08 jtkohl Exp $";
  1915.   #endif SABER
  1916.   #endif lint
  1917.   
  1918. --- 15,21 ----
  1919.   
  1920.   #ifndef lint
  1921.   #ifndef SABER
  1922. ! static char rcsid_server_c[] = "$Id: server.c,v 1.41 89/10/27 11:33:34 jtkohl Exp $";
  1923.   #endif SABER
  1924.   #endif lint
  1925.   
  1926. ***************
  1927. *** 98,103 ****
  1928. --- 98,114 ----
  1929.   
  1930.   long srv_rexmit_secs = REXMIT_SECS;
  1931.   
  1932. + /* counters to measure old protocol use */
  1933. + #ifdef OLD_COMPAT
  1934. + int old_compat_count_uloc = 0;
  1935. + int old_compat_count_ulocate = 0;
  1936. + int old_compat_count_subscr = 0;
  1937. + #endif /* OLD_COMPAT */
  1938. + #ifdef NEW_COMPAT
  1939. + int new_compat_count_uloc = 0;
  1940. + int new_compat_count_subscr = 0;
  1941. + #endif /* NEW_COMPAT */
  1942.   #ifdef DEBUG
  1943.   extern int zalone;
  1944.   #endif DEBUG
  1945. ***************
  1946. *** 905,926 ****
  1947.       char **responses;
  1948.       int num_resp;
  1949.       char *vers, *pkts, *upt;
  1950.   #define    NUM_FIXED 3            /* 3 fixed fields, plus server info */
  1951.       (void) strcpy(buf,version);
  1952.       (void) strcat(buf, "/");
  1953.   #ifdef vax
  1954.       (void) strcat(buf, "VAX");
  1955. ! #endif vax
  1956.   #ifdef ibm032
  1957.       (void) strcat(buf, "IBM 032");
  1958. ! #endif ibm032
  1959.   #ifdef sun
  1960.       (void) strcat(buf, "SUN");
  1961. ! #endif sun
  1962.   #ifdef mips
  1963.       (void) strcat(buf, "MIPS");
  1964. ! #endif mips
  1965.       vers = strsave(buf);
  1966.   
  1967.       (void) sprintf(buf, "%d pkts", npackets);
  1968. --- 916,945 ----
  1969.       char **responses;
  1970.       int num_resp;
  1971.       char *vers, *pkts, *upt;
  1972. + #if defined(OLD_COMPAT) || defined(NEW_COMPAT)
  1973. +     int extrafields = 0;
  1974. + #endif /* OLD_ or NEW_COMPAT */
  1975.   #define    NUM_FIXED 3            /* 3 fixed fields, plus server info */
  1976. !                     /* well, not really...but for
  1977. !                        backward compatibility, we gotta
  1978. !                        do it this way. */
  1979.       (void) strcpy(buf,version);
  1980.       (void) strcat(buf, "/");
  1981.   #ifdef vax
  1982.       (void) strcat(buf, "VAX");
  1983. ! #endif /* vax */
  1984.   #ifdef ibm032
  1985.       (void) strcat(buf, "IBM 032");
  1986. ! #endif /* ibm032 */
  1987.   #ifdef sun
  1988.       (void) strcat(buf, "SUN");
  1989. ! #endif /* sun */
  1990.   #ifdef mips
  1991.       (void) strcat(buf, "MIPS");
  1992. ! #endif /* mips */
  1993. ! #ifdef NeXT
  1994. !     (void) strcat(buf, "NeXT");
  1995. ! #endif /* NeXT */
  1996.       vers = strsave(buf);
  1997.   
  1998.       (void) sprintf(buf, "%d pkts", npackets);
  1999. ***************
  2000. *** 928,934 ****
  2001. --- 947,967 ----
  2002.       (void) sprintf(buf, "%d seconds operational",NOW - uptime);
  2003.       upt = strsave(buf);
  2004.   
  2005. + #ifdef OLD_COMPAT
  2006. +     if (old_compat_count_uloc) extrafields++;
  2007. +     if (old_compat_count_ulocate) extrafields++;
  2008. +     if (old_compat_count_subscr) extrafields++;
  2009. + #endif /* OLD_COMPAT */
  2010. + #ifdef NEW_COMPAT
  2011. +     if (new_compat_count_uloc) extrafields++;
  2012. +     if (new_compat_count_subscr) extrafields++;
  2013. + #endif /* NEW_COMPAT */
  2014. + #if defined(OLD_COMPAT) || defined(NEW_COMPAT)
  2015. +     responses = (char **) xmalloc((NUM_FIXED + nservers +
  2016. +                        extrafields) * sizeof(char **));
  2017. + #else
  2018.       responses = (char **) xmalloc((NUM_FIXED + nservers)*sizeof(char **));
  2019. + #endif /* OLD_ or NEW_COMPAT */
  2020.       responses[0] = vers;
  2021.       responses[1] = pkts;
  2022.       responses[2] = upt;
  2023. ***************
  2024. *** 942,947 ****
  2025. --- 975,1009 ----
  2026.                      otherservers[i].zs_dumping ? " (DUMPING)" : "");
  2027.           responses[num_resp++] = strsave(buf);
  2028.       }
  2029. + #ifdef OLD_COMPAT
  2030. +     if (old_compat_count_uloc) {
  2031. +         (void) sprintf(buf, "%d old old location requests",
  2032. +                old_compat_count_uloc);
  2033. +         responses[num_resp++] = strsave(buf);
  2034. +     }
  2035. +     if (old_compat_count_ulocate) {
  2036. +         (void) sprintf(buf, "%d old old loc lookup requests",
  2037. +                old_compat_count_ulocate);
  2038. +         responses[num_resp++] = strsave(buf);
  2039. +     }
  2040. +     if (old_compat_count_subscr) {
  2041. +         (void) sprintf(buf, "%d old old subscr requests",
  2042. +                old_compat_count_subscr);
  2043. +         responses[num_resp++] = strsave(buf);
  2044. +     }
  2045. + #endif /* OLD_COMPAT */
  2046. + #ifdef NEW_COMPAT
  2047. +     if (new_compat_count_uloc) {
  2048. +         (void) sprintf(buf, "%d new old location requests",
  2049. +                new_compat_count_uloc);
  2050. +         responses[num_resp++] = strsave(buf);
  2051. +     }
  2052. +     if (new_compat_count_subscr) {
  2053. +         (void) sprintf(buf, "%d new old subscr requests",
  2054. +                new_compat_count_subscr);
  2055. +         responses[num_resp++] = strsave(buf);
  2056. +     }
  2057. + #endif /* NEW_COMPAT */
  2058.   
  2059.       send_msg_list(who, ADMIN_STATUS, responses, num_resp, 0);
  2060.       for (i = 0; i < num_resp; i++)
  2061. diff -rc src/server/subscr.c /mit/zephyr/src/server/subscr.c
  2062. *** patchlevel1/src/server/subscr.c    Fri Oct 27 11:21:26 1989
  2063. --- src/server/subscr.c    Thu Oct 26 14:18:53 1989
  2064. ***************
  2065. *** 15,21 ****
  2066.   
  2067.   #ifndef lint
  2068.   #ifndef SABER
  2069. ! static char rcsid_subscr_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/subscr.c,v 1.35 89/10/02 15:31:08 jtkohl Exp $";
  2070.   #endif SABER
  2071.   #endif lint
  2072.   
  2073. --- 15,21 ----
  2074.   
  2075.   #ifndef lint
  2076.   #ifndef SABER
  2077. ! static char rcsid_subscr_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/subscr.c,v 1.36 89/10/26 14:18:28 jtkohl Exp $";
  2078.   #endif SABER
  2079.   #endif lint
  2080.   
  2081. ***************
  2082. *** 69,78 ****
  2083. --- 69,80 ----
  2084.   #define    OLD_ZEPHYR_VERSION    "ZEPH0.0"
  2085.   #define    OLD_CLIENT_INCOMPSUBS    "INCOMP"
  2086.   static void old_compat_subscr_sendlist();
  2087. + extern int old_compat_count_subscr;    /* counter of old use */
  2088.   #endif /* OLD_COMPAT */
  2089.   #ifdef NEW_COMPAT
  2090.   #define NEW_OLD_ZEPHYR_VERSION    "ZEPH0.1"
  2091.   static void new_old_compat_subscr_sendlist();
  2092. + extern int new_compat_count_subscr;    /* counter of old use */
  2093.   #endif /* NEW_COMPAT */
  2094.   
  2095.   extern char *re_comp(), *re_conv(), *rindex(), *index();
  2096. ***************
  2097. *** 796,802 ****
  2098.       struct sockaddr_in send_to_who;
  2099.       register int i;
  2100.   
  2101. !     zdbug((LOG_DEBUG, "new_old_compat_subscr_sendlist"));
  2102.       reply = *notice;
  2103.       reply.z_kind = SERVACK;
  2104.       reply.z_authent_len = 0; /* save some space */
  2105. --- 798,806 ----
  2106.       struct sockaddr_in send_to_who;
  2107.       register int i;
  2108.   
  2109. !     new_compat_count_subscr++;
  2110. !     syslog(LOG_INFO, "new old subscr, %s", inet_ntoa(who->sin_addr));
  2111.       reply = *notice;
  2112.       reply.z_kind = SERVACK;
  2113.       reply.z_authent_len = 0; /* save some space */
  2114. ***************
  2115. *** 873,879 ****
  2116.       int packlen, i, found = 0;
  2117.       char **answer = (char **) NULL;
  2118.   
  2119. !     zdbug((LOG_DEBUG, "old_compat_subscr_sendlist"));
  2120.       if (client && client->zct_subs) {
  2121.   
  2122.           /* check authenticity here.  The user must be authentic to get
  2123. --- 877,885 ----
  2124.       int packlen, i, found = 0;
  2125.       char **answer = (char **) NULL;
  2126.   
  2127. !     old_compat_count_subscr++;
  2128. !     syslog(LOG_INFO, "old old subscr, %s", inet_ntoa(who->sin_addr));
  2129.       if (client && client->zct_subs) {
  2130.   
  2131.           /* check authenticity here.  The user must be authentic to get
  2132. diff -rc src/server/uloc.c /mit/zephyr/src/server/uloc.c
  2133. *** patchlevel1/src/server/uloc.c    Tue Oct 25 00:47:01 1988
  2134. --- src/server/uloc.c    Thu Oct 26 14:19:36 1989
  2135. ***************
  2136. *** 3,10 ****
  2137.    *
  2138.    *    Created by:    John T. Kohl
  2139.    *
  2140. !  *    $Source: /paris/source/4.3/athena.lib/zephyr/server/RCS/uloc.c,v $
  2141. !  *    $Author: raeburn $
  2142.    *
  2143.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  2144.    *    For copying and distribution information, see the file
  2145. --- 3,10 ----
  2146.    *
  2147.    *    Created by:    John T. Kohl
  2148.    *
  2149. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/uloc.c,v $
  2150. !  *    $Author: jtkohl $
  2151.    *
  2152.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  2153.    *    For copying and distribution information, see the file
  2154. ***************
  2155. *** 14,20 ****
  2156.   #include <zephyr/mit-copyright.h>
  2157.   
  2158.   #ifndef lint
  2159. ! static char rcsid_uloc_c[] = "$Header: uloc.c,v 1.32 88/10/25 00:46:01 raeburn Exp $";
  2160.   #endif lint
  2161.   
  2162.   #include "zserver.h"
  2163. --- 14,20 ----
  2164.   #include <zephyr/mit-copyright.h>
  2165.   
  2166.   #ifndef lint
  2167. ! static char rcsid_uloc_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/uloc.c,v 1.33 89/10/26 14:19:13 jtkohl Exp $";
  2168.   #endif lint
  2169.   
  2170.   #include "zserver.h"
  2171. ***************
  2172. *** 89,97 ****
  2173. --- 89,100 ----
  2174.   #ifdef OLD_COMPAT
  2175.   #define    OLD_ZEPHYR_VERSION    "ZEPH0.0"
  2176.   #define    LOGIN_QUIET_LOGIN    "QUIET_LOGIN"
  2177. + extern int old_compat_count_ulocate;    /* counter of old use */
  2178. + extern int old_compat_count_uloc;    /* counter of old use */
  2179.   #endif /* OLD_COMPAT */
  2180.   #ifdef NEW_COMPAT
  2181.   #define    NEW_OLD_ZEPHYR_VERSION    "ZEPH0.1"
  2182. + extern int new_compat_count_uloc;    /* counter of old use */
  2183.   #endif NEW_COMPAT
  2184.   #if defined(OLD_COMPAT) || defined(NEW_COMPAT)
  2185.   static void old_compat_ulogin_locate();
  2186. ***************
  2187. *** 186,198 ****
  2188.       }
  2189.   #ifdef OLD_COMPAT
  2190.       if (!strcmp(notice->z_opcode, LOGIN_USER_LOGIN)) {
  2191. !         zdbug((LOG_DEBUG, "old login"));
  2192.           /* map LOGIN's to realm-announced */
  2193.           ulogin_add_user(notice, REALM_ANN, who);
  2194.           if (server == me_server) /* announce to the realm */
  2195.               sendit(notice, auth, who);
  2196.       } else if (!strcmp(notice->z_opcode, LOGIN_QUIET_LOGIN)) {
  2197. !         zdbug((LOG_DEBUG, "old quiet"));
  2198.           /* map LOGIN's to realm-announced */
  2199.           ulogin_add_user(notice, OPSTAFF_VIS, who);
  2200.           if (server == me_server) /* announce to the realm */
  2201. --- 189,203 ----
  2202.       }
  2203.   #ifdef OLD_COMPAT
  2204.       if (!strcmp(notice->z_opcode, LOGIN_USER_LOGIN)) {
  2205. !         syslog(LOG_INFO, "old login, %s", inet_ntoa(who->sin_addr));
  2206. !         old_compat_count_uloc++;
  2207.           /* map LOGIN's to realm-announced */
  2208.           ulogin_add_user(notice, REALM_ANN, who);
  2209.           if (server == me_server) /* announce to the realm */
  2210.               sendit(notice, auth, who);
  2211.       } else if (!strcmp(notice->z_opcode, LOGIN_QUIET_LOGIN)) {
  2212. !         syslog(LOG_INFO, "old hide, %s", inet_ntoa(who->sin_addr));
  2213. !         old_compat_count_uloc++;
  2214.           /* map LOGIN's to realm-announced */
  2215.           ulogin_add_user(notice, OPSTAFF_VIS, who);
  2216.           if (server == me_server) /* announce to the realm */
  2217. ***************
  2218. *** 358,364 ****
  2219.       if (!strcmp(notice->z_version, OLD_ZEPHYR_VERSION) &&
  2220.           !strcmp(notice->z_opcode, LOCATE_LOCATE)) {
  2221.           /* we support locates on the old version */
  2222. !         zdbug((LOG_DEBUG,"old locate"));
  2223.           ulogin_locate(notice, who);
  2224.           /* does xmit and ack itself, so return */
  2225.           return(ZERR_NONE);
  2226. --- 363,370 ----
  2227.       if (!strcmp(notice->z_version, OLD_ZEPHYR_VERSION) &&
  2228.           !strcmp(notice->z_opcode, LOCATE_LOCATE)) {
  2229.           /* we support locates on the old version */
  2230. !         syslog(LOG_INFO, "old locate, %s", inet_ntoa(who->sin_addr));
  2231. !         old_compat_count_ulocate++;
  2232.           ulogin_locate(notice, who);
  2233.           /* does xmit and ack itself, so return */
  2234.           return(ZERR_NONE);
  2235. ***************
  2236. *** 376,383 ****
  2237.           if (host && host->zh_locked) /* process later if locked */
  2238.               return(ZSRV_REQUEUE);
  2239.   
  2240.           if (!strcmp(notice->z_opcode, LOCATE_HIDE)) {
  2241. !             zdbug((LOG_DEBUG,"old hide"));
  2242.               if (ulogin_expose_user(notice, OPSTAFF_VIS)) {
  2243.                   if (server == me_server)
  2244.                       clt_ack(notice, who, NOT_FOUND);
  2245. --- 382,392 ----
  2246.           if (host && host->zh_locked) /* process later if locked */
  2247.               return(ZSRV_REQUEUE);
  2248.   
  2249. +         old_compat_count_ulocate++;
  2250.           if (!strcmp(notice->z_opcode, LOCATE_HIDE)) {
  2251. !             syslog(LOG_INFO, "old hide, %s",
  2252. !                    inet_ntoa(who->sin_addr));
  2253.               if (ulogin_expose_user(notice, OPSTAFF_VIS)) {
  2254.                   if (server == me_server)
  2255.                       clt_ack(notice, who, NOT_FOUND);
  2256. ***************
  2257. *** 384,390 ****
  2258.                   return(ZERR_NONE);
  2259.               }
  2260.           } else if (!strcmp(notice->z_opcode, LOCATE_UNHIDE)) {
  2261. !             zdbug((LOG_DEBUG,"old unhide"));
  2262.               if (ulogin_expose_user(notice, REALM_VIS)) {
  2263.                   if (server == me_server)
  2264.                       clt_ack(notice, who, NOT_FOUND);
  2265. --- 393,400 ----
  2266.                   return(ZERR_NONE);
  2267.               }
  2268.           } else if (!strcmp(notice->z_opcode, LOCATE_UNHIDE)) {
  2269. !             syslog(LOG_INFO, "old unhide, %s",
  2270. !                    inet_ntoa(who->sin_addr));
  2271.               if (ulogin_expose_user(notice, REALM_VIS)) {
  2272.                   if (server == me_server)
  2273.                       clt_ack(notice, who, NOT_FOUND);
  2274. ***************
  2275. *** 1250,1255 ****
  2276. --- 1260,1271 ----
  2277.       ZNotice_t reply;
  2278.       Code_t retval;
  2279.   
  2280. + #ifdef NEW_COMPAT
  2281. +     if (!strcmp(notice->z_version, NEW_OLD_ZEPHYR_VERSION)) {
  2282. +         new_compat_count_uloc++;
  2283. +         syslog(LOG_INFO, "new old locate, %s", inet_ntoa(who->sin_addr));
  2284. +     }
  2285. + #endif
  2286.       answer = ulogin_marshal_locs(notice, &found);
  2287.   
  2288.       reply = *notice;
  2289. diff -rc src/server/version.c /mit/zephyr/src/server/version.c
  2290. *** patchlevel1/src/server/version.c    Fri Oct 27 11:21:30 1989
  2291. --- src/server/version.c    Thu Oct 26 14:20:22 1989
  2292. ***************
  2293. *** 14,26 ****
  2294.   #include <zephyr/mit-copyright.h>
  2295.   
  2296.   #ifdef DEBUG
  2297. ! char version[] = "Zephyr Server (DEBUG) $Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  2298.   #else
  2299. ! char version[] = "Zephyr Server $Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  2300.   #endif DEBUG
  2301.   #ifndef lint
  2302.   #ifndef SABER
  2303. ! static char rcsid_version_c[] = "$Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  2304.   char copyright[] = "Copyright (c) 1987,1988,1989 Massachusetts Institute of Technology.\n";
  2305.   #ifdef CONCURRENT
  2306.   char concurrent[] = "Brain-dump concurrency enabled";
  2307. --- 14,26 ----
  2308.   #include <zephyr/mit-copyright.h>
  2309.   
  2310.   #ifdef DEBUG
  2311. ! char version[] = "Zephyr Server (DEBUG) $Revision: 3.15 $";
  2312.   #else
  2313. ! char version[] = "Zephyr Server $Revision: 3.15 $";
  2314.   #endif DEBUG
  2315.   #ifndef lint
  2316.   #ifndef SABER
  2317. ! static char rcsid_version_c[] = "$Id: version.c,v 3.15 89/10/26 14:20:07 jtkohl Exp $";
  2318.   char copyright[] = "Copyright (c) 1987,1988,1989 Massachusetts Institute of Technology.\n";
  2319.   #ifdef CONCURRENT
  2320.   char concurrent[] = "Brain-dump concurrency enabled";
  2321. diff -rc src/zhm/zhm.c /mit/zephyr/src/zhm/zhm.c
  2322. *** patchlevel1/src/zhm/zhm.c    Thu Mar 23 09:26:18 1989
  2323. --- src/zhm/zhm.c    Fri Oct 27 10:55:22 1989
  2324. ***************
  2325. *** 3,9 ****
  2326.    *
  2327.    *      Created by:     David C. Jedlinsky
  2328.    *
  2329. !  *      $Source: /mit/zephyr/src/zhm/RCS/zhm.c,v $
  2330.    *      $Author: jtkohl $
  2331.    *
  2332.    *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
  2333. --- 3,9 ----
  2334.    *
  2335.    *      Created by:     David C. Jedlinsky
  2336.    *
  2337. !  *      $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/zhm/RCS/zhm.c,v $
  2338.    *      $Author: jtkohl $
  2339.    *
  2340.    *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
  2341. ***************
  2342. *** 13,19 ****
  2343.   
  2344.   #include "zhm.h"
  2345.   
  2346. ! static char rcsid_hm_c[] = "$Header: zhm.c,v 1.41 89/03/23 09:25:18 jtkohl Exp $";
  2347.   
  2348.   #include <ctype.h>
  2349.   #include <signal.h>
  2350. --- 13,19 ----
  2351.   
  2352.   #include "zhm.h"
  2353.   
  2354. ! static char rcsid_hm_c[] = "$Id: zhm.c,v 1.42 89/10/27 10:55:13 jtkohl Exp $";
  2355.   
  2356.   #include <ctype.h>
  2357.   #include <signal.h>
  2358. ***************
  2359. *** 331,337 ****
  2360.            }
  2361.        }
  2362.        cli_sin = ZGetDestAddr();
  2363. -      cli_sin.sin_port = sp->s_port;
  2364.     
  2365.        /* Open the server socket */
  2366.     
  2367. --- 331,336 ----
  2368. diff -rc src/zhm/zhm.h /mit/zephyr/src/zhm/zhm.h
  2369. *** patchlevel1/src/zhm/zhm.h    Mon Oct  3 15:57:36 1988
  2370. --- src/zhm/zhm.h    Tue Oct 24 17:17:54 1989
  2371. ***************
  2372. *** 5,13 ****
  2373.    *
  2374.    *      Created by:     David C. Jedlinsky
  2375.    *
  2376. !  *      $Source: /mit/zephyr/src/zhm/RCS/zhm.h,v $
  2377.    *      $Author: jtkohl $
  2378. !  *      $Header: zhm.h,v 1.9 88/10/03 15:57:21 jtkohl Exp $
  2379.    *
  2380.    *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
  2381.    *      For copying and distribution information, see the file
  2382. --- 5,13 ----
  2383.    *
  2384.    *      Created by:     David C. Jedlinsky
  2385.    *
  2386. !  *      $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/zhm/RCS/zhm.h,v $
  2387.    *      $Author: jtkohl $
  2388. !  *      $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/zhm/RCS/zhm.h,v 1.11 89/10/24 17:17:49 jtkohl Exp $
  2389.    *
  2390.    *      Copyright (c) 1987 by the Massachusetts Institute of Technology.
  2391.    *      For copying and distribution information, see the file
  2392. ***************
  2393. *** 50,62 ****
  2394.   #ifdef vax
  2395.   #define MACHINE "vax"
  2396.   #define ok
  2397. ! #endif vax
  2398.   #ifdef ibm032
  2399.   #define MACHINE "rt"
  2400.   #define ok
  2401. ! #endif ibm032
  2402.   #ifndef ok
  2403.   #define MACHINE "unknown"
  2404.   #endif ok
  2405.   
  2406.   #endif !__HM_H__
  2407. --- 50,90 ----
  2408.   #ifdef vax
  2409.   #define MACHINE "vax"
  2410.   #define ok
  2411. ! #endif /* vax */
  2412.   #ifdef ibm032
  2413.   #define MACHINE "rt"
  2414.   #define ok
  2415. ! #endif /* ibm032 */
  2416. ! #ifdef NeXT
  2417. ! #define MACHINE "NeXT"
  2418. ! #define ok
  2419. ! #endif /* NeXT */
  2420. ! #ifdef SUN2_ARCH
  2421. ! #define MACHINE "sun2"
  2422. ! #define ok
  2423. ! #endif /* SUN2_ARCH */
  2424. ! #ifdef SUN3_ARCH
  2425. ! #define MACHINE "sun3"
  2426. ! #define ok
  2427. ! #endif /* SUN3_ARCH */
  2428. ! #ifdef SUN4_ARCH
  2429. ! #define MACHINE "sun4"
  2430. ! #define ok
  2431. ! #endif /* SUN4_ARCH */
  2432. ! #if defined(ultrix) && defined(mips)
  2433. ! #define MACHINE "decmips"
  2434. ! #define ok
  2435. ! #endif /* ultrix && mips */
  2436.   #ifndef ok
  2437.   #define MACHINE "unknown"
  2438.   #endif ok
  2439. + #undef ok
  2440.   
  2441.   #endif !__HM_H__
  2442. diff -rc src/zwgc/draw.c /mit/zephyr/src/zwgc/draw.c
  2443. *** patchlevel1/src/zwgc/draw.c    Fri Oct 27 11:21:32 1989
  2444. --- src/zwgc/draw.c    Thu Oct 19 08:28:54 1989
  2445. ***************
  2446. *** 9,15 ****
  2447.    */
  2448.   #include <zephyr/mit-copyright.h>
  2449.   #ifndef lint
  2450. ! static char rcsid[] = "$Header: draw.c,v 2.27 89/07/20 10:32:23 jtkohl Exp $";
  2451.   #endif lint
  2452.   
  2453.   #define FONTSPEEDHACK
  2454. --- 9,15 ----
  2455.    */
  2456.   #include <zephyr/mit-copyright.h>
  2457.   #ifndef lint
  2458. ! static char rcsid[] = "$Header: /mit/zephyr/src/zwgc/RCS/draw.c,v 2.28 89/10/19 08:28:48 jtkohl Exp $";
  2459.   #endif lint
  2460.   
  2461.   #define FONTSPEEDHACK
  2462. ***************
  2463. *** 771,776 ****
  2464. --- 771,778 ----
  2465.       register config_stack *cs = master.cstack;
  2466.       register config_stack *ncs;
  2467.       XConfigureRequestEvent config_event;
  2468. +     extern int do_x_configwindow;
  2469.   
  2470.       while (cs) {
  2471.       config_event.type = ConfigureRequest;
  2472.